在不保存的情况下更改 java 中图像的格式
Change the format of an Image in java without saving
我想读取图像然后更改其格式但不保存它。
例如我可以这样读图
BufferedImage img=ImageIO.read(new File(fileName));
然后我想改变 img
的格式,例如从 jpeg 到 png。
我发现的唯一方法是使用 ImageIO.read
写入然后读取新图像,但这似乎是一种有效的方法。
当您 "read" 图片来自
BufferedImage img=ImageIO.read(new File('myimage.png'));
你不仅在阅读而且还在解码它,即将(比如)PNG 格式的原始字节转换为你的应用程序或 API 可以操作(或显示)的某种 "RAW" 格式) - 在这种情况下,BufferedImage
。完成此操作后,该图像来自 PNG 文件的事实将被遗忘。要将其读取为 PNG 并将其保存为 JPEG,您需要对其进行解码(作为 PNG),然后对其进行编码(作为 JPG)。
I would like to read an image and then change its format but without saving it.
图像的 "format"(在 PNG/JPEG 意义上)为您提供了一种将图像打包成位序列的方法。所以,你的愿望毫无意义。最多,您可以将这些位存储在内存中(为什么?),但这与 "saving it" 相同(存储到内存而不是磁盘)。
我想读取图像然后更改其格式但不保存它。
例如我可以这样读图
BufferedImage img=ImageIO.read(new File(fileName));
然后我想改变 img
的格式,例如从 jpeg 到 png。
我发现的唯一方法是使用 ImageIO.read
写入然后读取新图像,但这似乎是一种有效的方法。
当您 "read" 图片来自
BufferedImage img=ImageIO.read(new File('myimage.png'));
你不仅在阅读而且还在解码它,即将(比如)PNG 格式的原始字节转换为你的应用程序或 API 可以操作(或显示)的某种 "RAW" 格式) - 在这种情况下,BufferedImage
。完成此操作后,该图像来自 PNG 文件的事实将被遗忘。要将其读取为 PNG 并将其保存为 JPEG,您需要对其进行解码(作为 PNG),然后对其进行编码(作为 JPG)。
I would like to read an image and then change its format but without saving it.
图像的 "format"(在 PNG/JPEG 意义上)为您提供了一种将图像打包成位序列的方法。所以,你的愿望毫无意义。最多,您可以将这些位存储在内存中(为什么?),但这与 "saving it" 相同(存储到内存而不是磁盘)。