网站大量收购闲置独家精品文档,联系QQ:2885784924

Java图像处理必读的基础知识.docx

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java图像处理必读的基础知识 API都是基于JDK6的,首先来看Java中如何组织一个图像对象BufferedImage的,如图: 一个BufferedImage的像素数据储存在Raster中,ColorModel里面储存颜色空间,类型等 信息,当前Java只支持一下三种图像格式- JPG,PNG,GIF,如何向让Java支持其它格式,首 先要 完成Java中的图像读写接口,然后打成jar,加上启动参数- Xbootclasspath/p newimageformatIO.jar即可。 ? Java中如何读写一个图像文件,使用ImageIO对象即可。读图像文件的代码如下: 1File file = new File(D:\\test\\blue_flower.jpg);2BufferedImage image = ImageIO.read(file); 写图像文件的代码如下: 1File outputfile = new File(saved.png);2ImageIO.write(bufferedImage, png,outputfile); 从BufferedImage对象中读取像素数据的代码如下: 1int type= image.getType();2if ( type ==BufferedImage.TYPE_INT_ARGB || type == BufferedImage.TYPE_INT_RGB ) 3?????return (int [])image.getRaster().getDataElements(x, y, width, height, pixels );4else 5????return image.getRGB( x, y, width, height, pixels, 0, width );首先获取图像类型,如果不是32位的INT型数据,直接读写RGB值即可,否则需要从Raster 对象中读取。 ? 往BufferedImage对象中写入像素数据同样遵守上面的规则。代码如下: 1int type= image.getType();2if ( type ==BufferedImage.TYPE_INT_ARGB || type == BufferedImage.TYPE_INT_RGB ) 3???image.getRaster().setDataElements(x, y, width, height, pixels );4else 5???image.setRGB(x, y, width, height, pixels, 0, width ); 读取图像可能因为图像文件比较大,需要一定时间的等待才可以,Java Advance Image Processor API提供了MediaTracker对象来跟踪图像的加载,同步其它操作,使用方法如下: 1MediaTracker tracker = new MediaTracker(this); //初始化对象2tracker.addImage(image_01, 1); // 加入要跟踪的BufferedImage对象image_001 3tracker.waitForID(1, 10000) // 等待10秒,让iamge_01图像加载 从一个32位int型数据cARGB中读取图像RGB颜色值的代码如下: 1int alpha = (cARGB 24) 0xff; //透明度通道2int red = (cARGB 16) 0xff; 3int green = (cARGB 8) 0xff;4int blue = cARGB 0xff; 将RGB颜色值写入成一个INT型数据cRGB的代码如下: 1cRGB = (alpha 24) | (red 16) | (green 8) | blue; 创建一个BufferedImage对象的代码如下: 1BufferedImage image = newBufferedImage(256, 256, BufferedImage.TYPE_INT_ARGB); 一个完整的源代码Demo如下:  HYPERLINK /lib/view/open1329811319733.html \l viewSource \o 查看源码 查看源码  HYPERLINK /lib/view/open1329811319733.html \l printSource \o 打印 打印 HYPERLINK /lib/view/open1329811319733.

文档评论(0)

ktj823 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档