Java培训教程Java应用程序中创建图像

上传人:lcm****801 文档编号:89280625 上传时间:2019-05-22 格式:PDF 页数:5 大小:109.29KB
返回 下载 相关 举报
Java培训教程Java应用程序中创建图像_第1页
第1页 / 共5页
Java培训教程Java应用程序中创建图像_第2页
第2页 / 共5页
Java培训教程Java应用程序中创建图像_第3页
第3页 / 共5页
Java培训教程Java应用程序中创建图像_第4页
第4页 / 共5页
Java培训教程Java应用程序中创建图像_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《Java培训教程Java应用程序中创建图像》由会员分享,可在线阅读,更多相关《Java培训教程Java应用程序中创建图像(5页珍藏版)》请在金锄头文库上搜索。

1、http:/ 兄弟连 IT 教育 版权所有 Java 培训教程 Java 应用程序中创建图像 合成图像 您不必从文件中读取所有的图像 您可以创建自己的图像。 要 创建自己的图像,最灵活的方法是用一个 BufferedImage 对象,它 是 Image 类的一个子类,它把图像数据存储在一个可以被访问的缓 冲区中。 它还支持各种存储像素数据的方法: 使用或不使用 alpha 通 道、 不同种类的颜色模型以及颜色组件的各种精确度。 ColorModel 类 提供一种灵活的方法定义各种颜色模型,以和 BufferedImage 对象 一起使用。为了理解颜色模型工作的基本知识,我们将只使用一个缺 省的

2、颜色模型,其颜色组件由 RGB 值和一个缓冲类型(存储 8 位的 RGB 颜色值加上一个alpha 通道)组成。这一缓冲类型由 BufferedImage 类中的常量 TYPE_INT_ARGB 指定,它意味着每个像 素要用一个 int 值。每个像素的值是以 8 位字节形式存储一个 alpha 组件加上 RGB 颜色组件。我们可以用给定的宽度和高度创建 一个这种类型的 BufferedImage 对象,代码语句如下: int width = 200; int height = 300; BufferedImage image = new BufferedImage(width, height,

3、BufferedImage.TYPE_INT_ARGB); http:/ 兄弟连 IT 教育 版权所有 这段代码创建了一个 BufferedImage 对象, 它代表一个 200 像 素宽、300 像素高的图像。为了应用这个图像,我们需要有图形上下 文,而 BufferedImage 对象的 createGraphics() 方法就返回一个 与该图像相关的 Graphics2D 对象: int width = 200; Graphics2D g2D = image.createGraphics(); 使用 g2D 对象的操作会修改 BufferedImage 对象 image 的像 素。利用这

4、个对象,您现在完全有能力应用 BufferedImage 对象。 您可以绘制形状、图像、GeneralPath 对象或任何别的东西,还可以 为图形上下文设置 alpha 组合对象。您同时还拥有 Graphics2D 对 象提供的全部仿射变形能力。 如果要从 BufferedImage 对象获取单个像素,可以通过调用它 的 getRGB() 方法,并提供该像素的 x,y 坐标作为 int 类型的参 数。这个像素会按 TYPE_INT_ARGB 格式以 int 类型返回,它由四个 8 位的值(代表 alpha 值和 RGB 颜色组件)组成一个 32 位字。同 时 getRGB() 还有一个重载的版

5、本, 它从一部分图像数据中返回一个 像素数组。您也可以通过调用 setRGB() 方法来设置单个像素。前两 个参数是该像素的坐标值,第三个参数是待设定的值,类型为 int。 http:/ 兄弟连 IT 教育 版权所有 这个方法也有一个版本可以设置像素数组的值。 至此我们已经完成了像素操作的学习。下面我们要建立一个 applet,它在 Wrox 徽标背景上使 BufferedImage 对象具有动画效 果。我们的示例还将演示怎样能让图像局部透明。applet 的基本内 容如下所示: import java.awt.*; import java.awt.image.*; import java.a

6、wt.geom.*; import javax.swing.*; public class ImageDrawDemo extends JApplet / The init() method to initialize everything. / The start() method to start the animation. / The stop() method to stop the animation. / The ImagePanel class defining the panel displaying the animation. / Data members for the

7、 applet. http:/ 兄弟连 IT 教育 版权所有 创建一个图像 一个子图形是一个小的图形图像, 可以将其绘制在静态图像以创 建动画。要创建动画效果,您只要随着时间推移,在不同的位置和方 向上绘制子图形。当然,利用坐标系的变形可以使之简化许多。游戏 经常使用子图形 由于您只需要在一个静态背景上绘制子图形, 所 以可以使动画所占用的处理器的时间大大减少。我们对使用 BufferedImage 对象的兴趣意味着我们将不再花费精力去研究减少 处理器时间的最佳技术, 而是把注意力放在理解怎样才能在一个程序 内部创建和使用图像上。 我们的 BufferedImage 对象看上去如图 1 中的图

8、像: 这个图像是一个以 spriteSize 为边长的正方形。 图像其它部分的尺 寸值都与这个边长相关。实际上这里只有两个几何实体,一条线和一 个圆,都在不同位置和方向重复出现。如果我们创建一个 Line2D.Double 对象代表线, 创建一个 Ellipse2D.Double 对象代表 圆, 那么我们就可以通过移动用户坐标系和画这两个对象中的一个或 其它的对象而画出整个图像。 如果是按真正面向对象的方法,应该定义一个类代表一个子图 形,可能是作为 BufferedImage 的一个子类,但由于我们是在探索 http:/ 兄弟连 IT 教育 版权所有 使用 BufferedImage 对象的技巧,因此用一个 createSprite() 方 法来画出 BufferedImage 对象上的子图形会更适合我们的目的。因 为该方法只是我们的 applet 类的一个成员,所以我们将为 applet 添加数据成员

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号