gpt4 book ai didi

java - 你如何把一个 .gif 变成一个字节 [][]?

转载 作者:行者123 更新时间:2023-12-04 04:47:39 24 4
gpt4 key购买 nike

我正在使用具有方法的 API

public void setImage(byte[][] newImage)

API 引用中给出的唯一信息是

“该图像的格式是一个简单的原始 2D array 字节。每个字节代表从 black (0)white (255) 的灰色阴影。当索引 2D array 时, Y axis 首先, X axis 排在第二位例如图像[y][x]。
参数值不在内部克隆。为避免不必要的共享,请在调用此方法之前克隆图像数据。”

我应该将 .gif 图像传递给此方法,但我终生无法弄清楚如何将 .gif 转换为 byte[][] array .

任何帮助都会很棒!谢谢。

最佳答案

有多种方法可以将颜色转换为灰度,但最简单的方法是对红色、绿色和蓝色值进行平均,如下所示:

BufferedImage image = ImageIO.read(new File([your gif]));

int[][] imageBytes = new int[image.getHeight()][image.getWidth()];

for (int y = 0; y < image.getHeight(); y++)
{
for (int x = 0; x < image.getWidth(); x++)
{
Color color = new Color(image.getRGB(x, y));
imageBytes[y][x] = (color.getRed() + color.getGreen() + color.getBlue()) / 3;
}
}

请注意,我使用了 int数组,因为(正如我之前评论过的)声明 setImage 的 API 存在根本问题。方法。一个 byte在 Java 中是有符号的,因此表示最小值为 -128,最大值为 127,因此不能用于值 0 - 255。

关于java - 你如何把一个 .gif 变成一个字节 [][]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17951396/

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