- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
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 );4else5?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 );4else5?image.setRGB(x, y, width, height, pixels, 0, width );读取图像可能因为图像文件比较大,需要一定时间的等待才可以,Java Advance ImageProcessor API提供了MediaTracker对象来跟踪图像的加载,同步其它操作,使用方法如下:1MediaTracker tracker = new MediaTracker(this); //初始化对象2tracker.addImage(image_01, 1); // 加入要跟踪的BufferedImage对象image_0013tracker.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如下:查看源码打印?01package com.gloomyfish.swing;02?03import java.awt.BorderLayout;04import java.awt.Dimension;05import java.awt.Graphics;06import java.awt.Graphics2D;07import java.awt.RenderingHints;08import java.awt.image.BufferedImage;09import java.io.File;10import java.io.IOException;11?12import javax.im
您可能关注的文档
最近下载
- 刘芳——本科论文初稿.doc VIP
- 安全培训记录效果评估表全员法律法规培训.docx VIP
- 3.4 透镜的应用(分层练习)2024-2025学年八年级物理上册同步精品课堂(苏科版2024)(解析版).docx VIP
- 《二年级上册美术折纸动物》ppt课件讲义.ppt
- BS EN 16120-2-2017Non-alloy 国外国际标准规范.pdf
- 精卫填海成语神话故事.pptx VIP
- 【生物】蛋白质相关计算课件 2023-2024学年高一上学期生物人教版必修1.pptx VIP
- 四位一体农村长效保洁方案(标书——已中标) .pdf VIP
- 人教版九年级上册化学第六单元测试卷.doc VIP
- 2025届高考语文复习:叠词的作用和表达效果+课件.pptx VIP
文档评论(0)