图像转换为 RGB 灰度。
接下来,将 Grayscale-image 转换为数组,执行该数组以定义转换。结果,数组由“0”和“255”组成。
然后,我需要把这个数组变成 BufferedImage。
我使用了代码:
public static BufferedImage getImageFromArray(int pixelsMain[][], int width, int height) throws IOException {
int pixels[] = new int[320*240];
for(int i=0, numb=0; i<pixelsMain.length; i++)
for(int j=0; j<pixelsMain[i].length; j++){
pixels[numb]=pixelsMain[i][j];
numb++;
}
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_BYTE_GRAY);
WritableRaster raster = (WritableRaster) image.getData();
raster.setPixels(0,0,width,height,pixels);
try {
ImageIO.write(image, "bmp", new FileOutputStream("[path]"));
} catch (IOException e) {
e.printStackTrace();
}
return image;
}
但是,执行该方法后 - “255”的所有值都转换为“-1”。
结果,图像是完全黑色的。
你能告诉我如何解决这个问题吗?