`
xpenxpen
  • 浏览: 727688 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java2D API视觉特效

阅读更多
1.一个不错的例子
Killer Game Programming in Java  第5章和第6章 Images, Visual Effects, and Animation
这本游戏编程书的第5和第6章讲了一个例子,涉及到了图像视觉特效的许多例子,可以优先参考。效果图如下:


使用的方法大致有以下这些:
1) Graphics.drawImage(Image img, int x, int y, int width, int height, ImageObserver observer)
   Graphics.drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer)
可用来放大缩小图像,水平垂直翻转图像。
2) AlphaComposite
阿尔法通道,利用透明度使图像淡出
3) AffineTransformOp
仿射变换,可用来360度旋转图像。
4) ConvolveOp
卷积操作,可用来模糊、锐化、边缘检测。
5) LookupOp
利用查找表,做出使图像变红。
6) RescaleOp
利用线性方程,做出使图像变红、变亮、反色效果。
7) BandCombineOp
利用矩阵,混合图像颜色。
8) BufferedImage.getRGB() BufferedImage.setRGB()
逐个像素变换。效果有传送(像素逐渐消失)、消灭(像素逐渐变黄,变红)

具体参考源码实验体会即可。

2. 神奇的卷积
利用卷积(ConvolveOp),提供一个矩阵,就可以做出各种效果。
以下例子使用6个矩阵,做出了6种效果(图见代码下面),从左到右,从上到下依次为:
原图、模糊、锐化
边缘检测、浮雕、运动模糊。
    public static final int[] matrixDimension ={3,3,3,3,3,9};
    public static float ninth = 1.0f / 9.0f;
    public static final float[] ORIGINAL = {
        0.f, 0.f,  0.f,
        0.f, 1.f,  0.f,
        0.f, 0.f,  0.f};
    public static final float[] BLUR = {
    	ninth, ninth,  ninth,
    	ninth,  ninth, ninth,
    	ninth, ninth,  ninth};
    public static final float[] SHARPEN = {
        0.f, -1.f,  0.f,
        -1.f,  5.f, -1.f,
        0.f, -1.f,  0.f};
    public static final float[] EDGE_DETECT = {
    	-1.f, -1.f, -1.f,
        -1.f,  8.f, -1.f,
        -1.f, -1.f, -1.f};
    public static final float[] EMBOSS = {
    	-1.f, -1.f,  0.f,
        -1.f,  0.f,  1.f,
         0.f,  1.f,  1.f};
    public static final float[] MOTION_BLUR = {
    	ninth, 0, 0, 0, 0, 0, 0, 0, 0,
        0, ninth, 0, 0, 0, 0, 0, 0, 0,
        0, 0, ninth, 0, 0, 0, 0, 0, 0,
        0, 0, 0, ninth, 0, 0, 0, 0, 0,
        0, 0, 0, 0, ninth, 0, 0, 0, 0,
        0, 0, 0, 0, 0, ninth, 0, 0, 0,
        0, 0, 0, 0, 0, 0, ninth, 0, 0,
        0, 0, 0, 0, 0, 0, 0, ninth, 0,
        0, 0, 0, 0, 0, 0, 0, 0, ninth};



以上程序我都附在附件里了,可以下载,

3.参考资料
以下2篇文章是不错的CG入门文章,介绍了图片的模糊、锐化、边缘检测。
Blurring for Beginners
Image Filtering
  • 大小: 64.1 KB
  • 大小: 242.7 KB
  • Convolve.7z (14 KB)
  • 描述: 卷积程序
  • 下载次数: 1
  • ImagesTests.jar (150.2 KB)
  • 描述: Killer Game Programming in Java第5章和第6章例子
  • 下载次数: 1
分享到:
评论

相关推荐

    重难点之Java2D API 概述一.pdf

    总的来说,Java 2D API提供了丰富的图形、文本和图像处理工具,使得开发者能够创建出具有复杂视觉效果的应用,如CAD-CAM软件、图形特效库、图像读写过滤器等,并且能够与Java Media Framework和Java Media API协同...

    java写的水波特效

    Java编程语言以其强大的功能和广泛的应用领域,常常被用来创建各种各样的视觉特效,其中之一就是“水波特效”。水波特效通常用于游戏开发、动画制作或者用户界面设计中,为用户提供更加生动逼真的交互体验。在Java中...

    JAVA游戏大综合及各种特效

    在"JAVA游戏大综合及各种特效"这个主题中,我们可以深入探讨Java在游戏编程中的应用,以及如何实现各种视觉效果。 一、Java游戏开发基础 Java作为一门面向对象的语言,因其跨平台的特性,被广泛应用于游戏开发。...

    java界面编程-特效篇

    总之,“java界面编程-特效篇”是一个深入学习Java GUI开发的专题,涵盖了从基本的组件使用到高级的视觉特效实现,从事件处理到性能优化的全方位内容。通过学习,你将能够创建出既美观又实用的Java桌面应用程序。

    java特效纸飞机特效

    在Java编程语言中,"java特效纸飞机特效"是一个用于创建视觉效果的程序,它可能在音画项目或者游戏开发中被用到。这个特效可能涉及到2D图形渲染、动画制作以及用户交互等方面的知识点。下面我们将深入探讨这些相关...

    Java 2D的 星际争霸

    Java 2D API是Java标准版(Java SE)的一部分,它提供了丰富的功能来绘制和处理二维图形、图像和文本。在Java 2D中,你可以通过Graphics2D对象进行绘制,它可以绘制线条、形状、文字、图片,并支持复杂的绘图操作,...

    java swing 特效

    4. **阴影效果**:虽然Swing没有内置的阴影效果,但可以通过在组件上叠加一个透明带阴影的面板,或者使用Java2D API中的Graphics2D类来实现阴影效果。 5. **过渡效果**:通过改变组件的大小、位置或颜色,可以创建...

    java技能百练--特效篇

    7. **粒子系统**: 在游戏中和许多视觉特效中,粒子系统常用于模拟火、烟、水等效果。Java可以通过自定义算法或第三方库(如jPCT-AE)实现粒子系统。 8. **音效与音乐播放**: JavaSound API可以用来播放和处理音频,...

    纯java实现的文字特效

    标题 "纯java实现的文字特效" 暗示我们将探讨如何使用Java编程语言来创建各种吸引人的文字动画或视觉效果。这种技术在用户界面设计、游戏开发或者任何需要动态展示文本的场景中都十分常见。Java提供了丰富的图形和...

    Introduction to Computer Graphics Using Java 2D and 3D, 2nd Edition

    Java平台通过其标准库中的`java.awt`和`javax.swing`包提供了2D图形支持,而3D图形处理则主要依赖于Java 3D API。Java 2D提供了丰富的绘图功能,包括线条、形状、文本以及图像的绘制和转换。此外,它还支持高级特性...

    java 图片溶合特效源码

    Java Advanced Imaging(JAI)是Sun Microsystems开发的一个扩展Java 2D API的库,用于处理复杂的图像操作,包括旋转、缩放、色彩空间转换以及溶合等。使用JAI,开发者可以轻松地实现图片溶合特效。例如,通过`...

    Java编程-特效界面篇

    5. **图形和图像**:Java提供Graphics2D API,可以用来绘制自定义图形,实现高级视觉效果。同时,可以加载和显示图像资源,增强界面的视觉表现。 6. **动画和过渡**:为了增加用户界面的生动性,可以使用JavaFX的...

    java游戏大综合及各种特效

    它提供了丰富的示例代码和教程,帮助学习者理解和掌握如何在Java平台上创建动态、引人入胜的游戏以及各种视觉特效。 Java作为一种跨平台的编程语言,因其强大而灵活的特性,被广泛应用于游戏开发。它的面向对象设计...

    java图形图象处理.zip

    在Java中,图形图像处理主要依赖于Java 2D API(Application Programming Interface)和Java AWT(Abstract Window Toolkit)以及Swing库。这些工具集提供了丰富的功能,使开发者能够构建具有复杂图形用户界面的应用...

    Java绘制图片火焰效果javalearnsa资料分享

    1. **Java 2D API**:这是Java用于图形绘制的主要工具集,扩展了AWT组件,提供了更高级别的绘图功能。Java 2D API包括Graphics2D类,它支持矢量图形和位图操作,可以用来创建火焰效果。 2. **Graphics2D类**:这个...

    java烟花特效

    在这个特效中,可能使用了Graphics2D API来绘制复杂的图形,如烟花的轨迹和绽放效果。 2. **多线程**:为了使烟花能够同时升空并在空中绽放,程序需要创建多个线程来独立处理每一朵烟花。Java的Thread类或者...

    java图形图象处理(论文+系统).zip

    同时,系统部分可能是一个实际的图像处理应用,利用Java 2D API和/或JAI API实现了一系列图像处理功能,如图像编辑、特效应用、分析工具等。这个系统可能是为了演示理论在实践中的应用,或者是为了特定的项目需求而...

    JAVA图像处理代码

    首先,Java提供了强大的标准库Java Advanced Imaging (JAI) 和 Java 2D API,用于进行图像处理。JAI 是一个可扩展的框架,专门设计用于处理各种图像操作,如旋转、缩放、裁剪、色彩转换等。Java 2D API 则是Java平台...

Global site tag (gtag.js) - Google Analytics