【发布时间】:2014-01-11 01:00:35
【问题描述】:
在我的代码中,我有一个 BufferedImage,它加载了 ImageIO 类,如下所示:
BufferedImage image = ImageIO.read(new File (filePath);
稍后,我想将其保存到字节数组中,但ImageIO.write 方法要求我选择 GIF、PNG 或 JPG 格式来写入我的图像(如教程 here 中所述) .
我想选择与原始图像相同的文件类型。如果图像最初是 GIF,我不希望将其保存为 PNG 的额外开销。但是,如果图像最初是 PNG,我不想通过将其保存为 JPG 或 GIF 来失去半透明度等。有没有办法可以从 BufferedImage 确定原始文件格式是什么?
我知道我可以在加载图像时简单地解析文件路径以查找扩展名并将其保存以备后用,但理想情况下,我希望有一种直接从 BufferedImage 执行此操作的方法。
【问题讨论】:
-
穆哈哈,享受alpha channel。
-
您可以访问图像类型并使用
InputStream和ImageIO创建BufferedImage。只需先将File转换为InputStream。在这里查看我的答案:stackoverflow.com/a/36770963/1625820
标签: java image bufferedimage javax.imageio