`
xpenxpen
  • 浏览: 703524 次
  • 性别: 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
分享到:
评论

相关推荐

    Java 2D API 程序员指南中文版

    Java 2D API 程序员指南中文版

    Java 2D API 程序员指南

    Java 2D API 程序员指南 博文链接:https://joedanny.iteye.com/blog/158620

    java 2d API Java_2D_API_中文使用指_wrapper

    java 2d API Java_2D_API_中文使用指_wrapper 中文指南

    Java 2D API 中文使用指

    速成java2D绘图

    Java 2D API 中文使用指南

    Java 2D API 中文使用指南 ,很好的介绍JAVA2D方面的的咚咚

    java2D网页版API文档

    java2D+api+网页版+文档,该API文档使用方便

    Java2D编程--著名的Java大手动画

    环境:Window XP sp3, JDK 1.6, MyEclipse 5.5 运行步骤: 1、下载解压之后,使用...本示例一行注释一行代码,非常详细的说明了怎样使用Java 2D API来编写Java动画应用。 阅读对象:非常熟悉Java基本概念的人员

    java 2D api

    java 2D api;编程必备,基础 java 2D api;编程必备,基础

    重难点之Java2D API 概述一.pdf

    重难点之Java2D API 概述一.pdf

    JSP与Java2D Web图表编程

    Java2D API提供了绘制复杂图形的支持。在java.awt.geom包中,提供了很多独特的用以处理圆弧、文字和图像的API。该包与java.awt、java.awt.color、java.awt.image、java.awt.font、java.awt.print,以及java.awt....

    计算机图形学应用Java2D和3D

    作者权衡了在软件和硬件方面的最新进展,结合高层次的Java 2D和Java 3D API的应用和发展来讲授基本概念。《计算机科学丛书·计算机图形学应用Java 2D和3D》首先介绍计算机图形系统各部分是如何 资源太大,传百度网盘...

    JAVA_API1.6文档(中文)

    java.awt.geom 提供用于在与二维几何形状相关的对象上定义和执行操作的 Java 2D 类。 java.awt.im 提供输入方法框架所需的类和接口。 java.awt.im.spi 提供启用可以与 Java 运行时环境一起使用的输入方法开发的...

    Java 1.6 API 中文 New

    java.awt.geom 提供用于在与二维几何形状相关的对象上定义和执行操作的 Java 2D 类。 java.awt.im 提供输入方法框架所需的类和接口。 java.awt.im.spi 提供启用可以与 Java 运行时环境一起使用的输入方法开发的接口...

    java2d chm格式

    java2d--chm格式的java2d--chm格式的java2d--chm格式的java2d--chm格式的java2d--chm格式的

Global site tag (gtag.js) - Google Analytics