访问Grayscale bufferedImage中的像素并更改java中的像素值

时间:2012-02-03 16:59:29

标签: java image-processing

我想对灰度图像进行某种图像处理。

BufferedImage bImg = new BufferedImage(img.getWidth(null),img.getHeight(null),BufferedImage.TYPE_BYTE_GRAY);
Graphics2D g=bImg.createGraphics();
g.drawImage(img,null,null);

我正在使用(BufferedImage.TYPE_BYTE_GRAY)此类型来获取灰度图像
但我不知道如何设置这个灰度BufferedImage的值。

1 个答案:

答案 0 :(得分:6)

我使用writableRaster解决了这个问题。

BufferedImage bImg = new BufferedImage(img.getWidth(null),img.getHeight(null),BufferedImage.TYPE_BYTE_GRAY);
Graphics2D g=bImg.createGraphics();
g.drawImage(img,null,null);


WritableRaster raster=bImg.getRaster();
        int[] iArray=new int[1];
        for(int i=0;i<215;i++)
            for(int j=0;j<215;j++){
                raster.getPixel(i, j, iArray);
                iArray[0]=0;
                raster.setPixel(i, j, iArray);
            }