2022年Java图像处理必读的基础知识 .pdf
《2022年Java图像处理必读的基础知识 .pdf》由会员分享,可在线阅读,更多相关《2022年Java图像处理必读的基础知识 .pdf(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Java 图像处理必读的基础知识API 都是基于 JDK6的,首先来看 Java 中如何组织一个图像对象BufferedImage的,如图:一个 BufferedImage 的像素数据储存在Raster 中,ColorModel 里面储存颜色空间,类型等信息,当前 Java 只支持一下三种图像格式 - JPG,PNG,GIF,如何向让 Java 支持其它格式,首先要 完成 Java 中的图像读写接口,然后打成jar ,加上启动参数 - Xbootclasspath/p newimageformatIO.jar即可。Java 中如何读写一个图像文件,使用ImageIO 对象即可。读图像文件的代码
2、如下:1 File file = new File(D:testblue_flower.jpg); 2 BufferedImage image = ImageIO.read(file); 写图像文件的代码如下:名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 1 页,共 6 页 - - - - - - - - - 1 File outputfile = new File(saved.png); 2 ImageIO.write(bufferedImage, png,ou
3、tputfile); 从 BufferedImage 对象中读取像素数据的代码如下:1 int type= image.getType(); 2 if ( type =BufferedImage.TYPE_INT_ARGB | type = BufferedImage.TYPE_INT_RGB ) 3 return (int )image.getRaster().getDataElements(x, y, width, height, pixels ); 4 else 5 return image.getRGB( x, y, width, height, pixels, 0, width );
4、 首先获取图像类型,如果不是32 位的 INT 型数据,直接读写 RGB 值即可,否则需要从 Raster 对象中读取。往 BufferedImage 对象中写入像素数据同样遵守上面的规则。代码如下:1 int type= image.getType(); 2 if ( type =BufferedImage.TYPE_INT_ARGB | type = BufferedImage.TYPE_INT_RGB ) 3 image.getRaster().setDataElements(x, y, width, height, pixels ); 4 else 5 image.setRGB(x,
5、y, width, height, pixels, 0, width ); 读取图像可能因为图像文件比较大,需要一定时间的等待才可以,Java Advance ImageProcessor API提供了 MediaTracker 对象来跟踪图像的加载,同步其它操作,使用方法如下:1 MediaTracker tracker = new MediaTracker(this); /初始化对象2 tracker.addImage(image_01, 1); / 加入要跟踪的 BufferedImage 对象image_001 3 tracker.waitForID(1, 10000) / 等待 10
6、秒,让 iamge_01图像加载名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 2 页,共 6 页 - - - - - - - - - 从一个 32 位 int 型数据 cARGB 中读取图像 RGB 颜色值的代码如下:1 int alpha = (cARGB 24)& 0 xff; /透明度通道2 int red = (cARGB 16) &0 xff; 3 int green = (cARGB 8) &0 xff; 4 int blue = cARGB & 0
7、xff; 将 RGB 颜色值写入成一个INT 型数据 cRGB 的代码如下:1 cRGB = (alpha 24) | (red 16) | (green 8) | blue; 创建一个 BufferedImage 对象的代码如下:1 BufferedImage image = newBufferedImage(256, 256, BufferedImage.TYPE_INT_ARGB); 一个完整的源代码Demo 如下:查看源码打印?01 package com.gloomyfish.swing; 02 03 import java.awt.BorderLayout; 04 import j
8、ava.awt.Dimension; 05 import java.awt.Graphics; 06 import java.awt.Graphics2D; 07 import java.awt.RenderingHints; 08 import java.awt.image.BufferedImage; 09 import java.io.File; 10 import java.io.IOException; 11 12 import javax.imageio.ImageIO; 13 import javax.swing.JComponent; 14 import javax.swing
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年Java图像处理必读的基础知识 2022 Java 图像 处理 必读 基础知识
限制150内