java - 将RGB的int[][]保存为图像文件

标签 java image rgb bufferedimage

我有图像 RBG 值的数组 int[ ][ ],我需要将其存储到 jpg 文件中。我尝试这样做:

 BufferedImage image = ImageIO.read(new ByteArrayInputStream(result));
 ImageIO.write(image, "jpg", new File("/path/", "snap.jpg"));

但是我有一个 int[ ][ ] 而不是 byte[ ] 数组。如何将 int[ ][ ] 转换为 byte[ ] 而不丢失值?

最佳答案

即使除了 int[][]byte[] 的问题之外,您的表达式 ImageIO.read(new ByteArrayInputStream(result)); 并没有真正意义,因为它期望 result 是图像文件的内容(不仅仅是像素值,还包括一些可识别的所有标题、填充等)图像文件格式)。

我认为你想要的是:

final int height = result.length;
final int width = result[0].length;
final BufferedImage image =
    new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
for (int y = 0; y < height; ++y) {
    for (int x = 0; x < width; ++x) {
        bufferedImage.setRGB(x, y, result[y][x]);
    }
}

关于java - 将RGB的int[][]保存为图像文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24496488/

相关文章:

css - 使用 sRGB 照片和监视器 RGB 合成开发网站的颜色配置文件策略

java - 使用 RGBA 中的 alpha 设置图像的不透明度

python - 通过 PIL 和 colorsys 将 RGB 转换为 HSV

java - Wicket multiuploadField 自动提交

java.lang.UnsatisfiedLinkError - 加载多个 lib 文件?

image - 在 PyCharm 中调试时将 numpy 数组视为图像?

c# - 构建后Unity3D加载资源

java - JSON/GSON 解析返回某些属性的空值

Java计算出哪个数字先为零

python - 屏幕抓取图像(即 Firefox 页面信息/谷歌图像)