在Java中将图像转换为字节数组

时间:2012-10-27 02:07:45

标签: java image byte data-conversion

您好我正在处理的对象识别项目的模型测试问题。我希望能够在我的eclipse项目文件夹中获取.jpeg文件,并将它们缩减为Java中非常稀疏的字节数组。例如,如果我有一个球的图片,我希望能够将其转换为下面的字节2-D数组:

00000000000000000
00000001110000000
00001100001110000
00010000000001000
00010000000001000
00001000000010000
00000011111000000
00000000000000000

如果某人能够如此善良地解释我如何能够最有效地做到这一点,我将非常感激。我对编程比较陌生,并且对oop的了解不多,所以如果你能用简单的编程术语来描述这个过程而没有任何术语我会非常感激。

1 个答案:

答案 0 :(得分:3)

首先获取图像的字节数组,然后将图像转换为BufferedImage。请参阅链接以将图像转换为BuffredImage。 http://www.dzone.com/snippets/converting-images

使用 bufferedImageToByteArray 函数将BufferedImage转换为bytearray后。

BufferedImage buf_image; // this is BufferedImage reference you got after converting it from Image
byte[] imageByteArray = bufferedImageToByteArray(buf_image,"jpg");

public static byte[] bufferedImageToByteArray(BufferedImage image, String format) throws IOException
{
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    ImageIO.write(image, format, baos);
    return baos.toByteArray();
}