gpt4 book ai didi

java - 从数组到 BufferedImage 的转换不正确

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:22:01 25 4
gpt4 key购买 nike

图像转换为 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”。

因此,图像完全是黑色的。

你能告诉我如何解决这个问题吗?

最佳答案

使用 image.getRaster() 而不是 (WritableRaster)image.getData()。后者正在制作副本,因此更改它没有任何效果。

关于java - 从数组到 BufferedImage 的转换不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11044329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com