小弟最近在学有关图像处理问题,我想修改图像像素,但总没成功.书里只有关获取像素的API
try{
PixelGrabber pg=new PixelGrabber(im,0,0,w,h,pixels,0,w);
pg.grabPixels();
}catch(InterruptedException e){e.printStackTrace();}
ColorModel cm=ColorModel.getRGBdefault();
for(x=0;x<w*h;x++){
int red=cm.getRed(pixels[x]);
int green=cm.getGreen(pixels[x]);
int blue=cm.getBlue(pixels[x]);
.....
}
我想问的是,这样是获取了RGB的像素
如果我想修改的话应该怎样把修改后的RGB放pixels这个数组里????
try{
PixelGrabber pg=new PixelGrabber(im,0,0,w,h,pixels,0,w);
pg.grabPixels();
}catch(InterruptedException e){e.printStackTrace();}
ColorModel cm=ColorModel.getRGBdefault();
for(x=0;x<w*h;x++){
int red=cm.getRed(pixels[x]);
int green=cm.getGreen(pixels[x]);
int blue=cm.getBlue(pixels[x]);
.....
}
我想问的是,这样是获取了RGB的像素
如果我想修改的话应该怎样把修改后的RGB放pixels这个数组里????
解决方案 »
- 如何通过搜索地名找到在地图中所对应的位置
- 谁来帮我下,数据库插入数据问题
- 关于APPLET的初级问题
- 一个多线程的socket,没有条件多台机器测试
- 关于数组初始化的问题
- Socket 总是收不到回应??? 请大家帮忙
- 如何缩放任意格式图片?
- Our programmer can only STUDY others technology, never participate in.
- 经常看到“链接池”这个词,到底是什么意思,作什么用的??
- java函数参数是数组,可以不用另外定义个数组直接在函数上写个数组传进去吗?
- java 初学者的问题
- [Microsoft][SQLServer 2000 Driver for JDBC]Software caused connection abort: recv failed
int height = 300;
BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_INT_ARGB); 这段代码创建了一个 BufferedImage 对象,它代表一个 200 像素宽、300 像素高的图像。为了应用这个图像,我们需要有图形上下文,而 BufferedImage 对象的 createGraphics() 方法就返回一个与该图像相关的 Graphics2D 对象:int width = 200;
Graphics2D g2D = image.createGraphics(); 使用 g2D 对象的操作会修改 BufferedImage 对象 image 的像素。利用这个对象,您现在完全有能力应用 BufferedImage 对象。您可以绘制形状、图像、GeneralPath 对象或任何别的东西,还可以为图形上下文设置 alpha 组合对象。您同时还拥有 Graphics2D 对象提供的全部仿射变形能力。 如果要从 BufferedImage 对象获取单个像素,可以通过调用它的 getRGB() 方法,并提供该像素的 x,y 坐标作为 int 类型的参数。这个像素会按 TYPE_INT_ARGB 格式以 int 类型返回,它由四个 8 位的值(代表 alpha 值和 RGB 颜色组件)组成一个 32 位字。同时 getRGB() 还有一个重载的版本,它从一部分图像数据中返回一个像素数组。您也可以通过调用 setRGB() 方法来设置单个像素。前两个参数是该像素的坐标值,第三个参数是待设定的值,类型为 int。这个方法也有一个版本可以设置像素数组的值。