gpt4 book ai didi

java - 使用 Java 的 ImageIO 将像素数组转换为 Image 对象?

转载 作者:IT老高 更新时间:2023-10-28 21:15:10 26 4
gpt4 key购买 nike

我目前正在使用以下代码将像素值数组(最初使用 java.awt.image.PixelGrabber 对象创建)转换为 Image 对象:

public Image getImageFromArray(int[] pixels, int width, int height) {
MemoryImageSource mis = new MemoryImageSource(width, height, pixels, 0, width);
Toolkit tk = Toolkit.getDefaultToolkit();
return tk.createImage(mis);
}

是否可以使用 ImageIO 包中的类来实现相同的结果,这样我就不必使用 AWT 工具包了?

Toolkit.getDefaultToolkit() 似乎不是 100% 可靠,有时会抛出 AWTError,而 ImageIO 类应该始终可用,这就是我对更改方法感兴趣的原因。

最佳答案

您可以在不使用 ImageIO 的情况下创建图像。只需使用与像素数组内容匹配的图像类型创建一个 BufferedImage。

public static Image getImageFromArray(int[] pixels, int width, int height) {
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
WritableRaster raster = (WritableRaster) image.getData();
raster.setPixels(0,0,width,height,pixels);
return image;
}

使用 PixelGrabber 时,不要忘记在调用 getImageFromArray 之前从像素数组中提取 RGBA 信息。 handlepixelmethod 中有一个例子。在 PixelGrabber javadoc 中。完成此操作后,请确保 BufferedImage 构造函数中的图像类型为 BufferedImage.TYPE_INT_ARGB

关于java - 使用 Java 的 ImageIO 将像素数组转换为 Image 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/124630/

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