如何将缓冲图像另存为文件参数:返回:抛出:
我正在使用imgscalr Java库来调整图像的大小。
resize() 方法调用的结果是一个 BufferedImage 对象。我现在想将其另存为文件(通常.jpg)。
我该怎么做?我想从->,但也许这不是正确的方法?BufferedImage
File
我正在使用imgscalr Java库来调整图像的大小。
resize() 方法调用的结果是一个 BufferedImage 对象。我现在想将其另存为文件(通常.jpg)。
我该怎么做?我想从->,但也许这不是正确的方法?BufferedImage
File
File outputfile = new File("image.jpg");
ImageIO.write(bufferedImage, "jpg", outputfile);
答案就在 Java 文档的编写/保存图像教程中。
该类提供以下用于保存图像的方法:Image I/O
static boolean ImageIO.write(RenderedImage im, String formatName, File output) throws IOException
本教程解释了
类实现 RenderedImage 接口。
所以它能够在方法中使用。
例如
try {
BufferedImage bi = getMyImage(); // retrieve image
File outputfile = new File("saved.png");
ImageIO.write(bi, "png", outputfile);
} catch (IOException e) {
// handle exception
}
使用 try 块包围调用非常重要,因为根据 API,该方法会引发“如果在写入过程中发生错误”write
IOException
还更详细地解释了该方法的目标,参数,返回和抛出:
使用支持给定格式的任意 ImageWriter 将图像写入文件。如果已存在文件,则其内容将被丢弃。
参数:
im - 要编写的渲染图像。
formatName - 包含格式的非正式名称的字符串。
输出 - 要写入的文件。
返回:
如果未找到合适的编写器,则为 false。
抛出:
非法参数异常 - 如果任何参数为空。
IOException - 如果在写入过程中发生错误。
但是,可能仍然看起来相当模糊和模棱两可;本教程稍微清除了一下:formatName
ImageIO.write 方法调用实现 PNG 编写“PNG 编写器插件”的代码。之所以使用术语插件,是因为映像 I/O 是可扩展的,并且可以支持各种格式。
但是以下标准图像格式插件:JPEG,PNG,GIF,BMP和WBMP始终存在。
对于大多数应用程序,使用这些标准插件之一就足够了。它们具有随时可用的优势。
但是,您还可以使用其他格式:
Image I/O 类提供了一种插入对可以使用的其他格式的支持的方法,并且存在许多此类插件。如果您对哪些文件格式可以在系统中加载或保存感兴趣,则可以使用 ImageIO 类的 getReaderFormatNames 和 getWriterFormatNames 方法。这些方法返回一个字符串数组,其中列出了此 JRE 中支持的所有格式。
String writerNames[] = ImageIO.getWriterFormatNames();
返回的名称数组将包括已安装的任何其他插件,并且这些名称中的任何一个都可以用作格式名称以选择映像编写器。
对于一个完整而实际的例子,可以参考Oracle的SaveImage.java
个例子。