我已使用以下代码将图像转换为数组:
BufferedImage bufferedImage = null;
try {
bufferedImage = ImageIO.read(new File("name.jpeg"));
} catch (IOException e) { }
byte[] b = ((DataBufferByte) bufferedImage.getRaster().getDataBuffer()).getData();
该数组包含每个像素3个字节。我的问题是如何将单个像素设置为白色,因为问题是Java中的字节是有符号的,因此只允许-128到127之间的值。但我想将我的像素设置为255,255,255。如果我设置所有三个值到127的像素都变成灰色。
答案 0 :(得分:2)
将值设置为-1
,这是无符号255
字节的signed representation。
或者,如果您想让代码更加明显,(byte)255
也会使代码更有效。
答案 1 :(得分:0)
你也可以使用内置ByteBuffer的Java来帮助管理这类东西。不确定你是否需要专门拥有一个byte[]
数组,但它是你可以利用的酷对象。