gpt4 book ai didi

java - 如何从java中的字节数组获取整数数组并打印输出数组?字节数组来自225*225维度的灰度图像

转载 作者:行者123 更新时间:2023-12-01 19:54:56 24 4
gpt4 key购买 nike

这里我将字节数组 data[] 类型转换为 int。但在 arr[i] 中获取正整数值和负整数值作为输出数组。但像素值应该为正,对吗?对于灰度(0 到 255),我认为我转换的方式错误。谁能建议一些代码将我的字节数组data[]转换为整数一维数组arr[]

public class Imagemat {
public static void main(String[] args) throws Exception {
//*************convert byte array*************//
BufferedImage bImage = ImageIO.read(new File("image path"));
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ImageIO.write(bImage, "jpg", bos);
byte[] data = bos.toByteArray(); //byte array data[]

//*****convert to integer array *****//
int[] arr = new int[data.length];
for(int i = 0; i < data.length; i++) {
arr[i] = (int)data[i];
}
for(int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " "); //integer array arr[i]
System.out.println();
}
}
}

获取输出如下:

-1  -40  -1  -32  0  16  74  70  73  70  0  1  2  0  0  1  0  1  0  0  -1  -37  0  67  0  8  6  6  7  
6 5 8 7 7 7 9 9 8 10 12 20 13 12 11 11 1........

最佳答案

我不确定 JPG 图像如何以字节存储,但要将无符号字节转换为 int,您可以使用 Byte.toUnsignedInt(byte x) 来获取字节的无符号值。 (此函数仅返回 ((int) x) & 0xff,因此您可以根据需要使用它)

示例:

int[] arr = new int[data.length];
for(int i = 0; i < data.length; i++) {
arr[i] = Byte.toUnsignedInt(data[i]);
}
for(int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " "); //integer array arr[i]
System.out.println();
}

关于java - 如何从java中的字节数组获取整数数组并打印输出数组?字节数组来自225*225维度的灰度图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59046882/

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