【发布时间】:2014-06-30 18:20:30
【问题描述】:
我有图像的 RBG 值的数组 int[ ][ ],我需要将它存储到 jpg 文件中。我尝试这样做:
BufferedImage image = ImageIO.read(new ByteArrayInputStream(result));
ImageIO.write(image, "jpg", new File("/path/", "snap.jpg"));
但我有一个 int[ ][ ] 而不是 byte[ ] 数组。如何在不丢失值的情况下将 int[ ][ ] 转换为 byte[ ]?
【问题讨论】:
-
如果在创建图像时使用适当的图像类型常量,可以创建 BufferedImage 以使用 int 数组或字节数组。我从未通过 ImageIO 直接读取数组,而是从 BufferedImage 的光栅数据缓冲区中获取或放入数组。请注意,我不是这样做的专业人士,因此请谨慎对待此信息。
-
如果您担心数据丢失,为什么要使用像 jpeg 这样的有损压缩?
标签: java image rgb bufferedimage