你应该看看ImageIO。支持JPEG、PNG、BMP、WBMP、GIF的读写。
JAI API 还提供 TIFF 支持,我之前也为尼康相机使用过 RAW 插件。
查看Working with Images 和JavaDocs 了解更多信息。
更新示例
没有源图像将无法进行适当的测试,但这是基本的工作流程。
我使用File 作为我的输入,但为了演示基本概念,我创建了InputStream 和OutputStream(因为ImageIO 可以读/写Files)
File inputFile = new File("/path/to/image.png");
File outputFile = new File("Test.jpg");
try (InputStream is = new FileInputStream(inputFile)) {
BufferedImage image = ImageIO.read(is);
try (OutputStream os = new FileOutputStream(outputFile)) {
ImageIO.write(image, "jpg", os);
} catch (Exception exp) {
exp.printStackTrace();
}
} catch (Exception exp) {
exp.printStackTrace();
}
更新
所以使用上面的代码,我能够将我在paint中创建的PNG文件转换为JPG...
PNG/JPG
您也可以尝试将输入流和输出流转换为 ImageInputStream 和 ImageOutputStream,尽管这通常在您想要查找给定图像格式的提供程序时完成。
File inputFile = new File("...");
File outputFile = new File("Test.jpg");
try (InputStream is = new FileInputStream(inputFile)) {
ImageInputStream iis = ImageIO.createImageInputStream(is);
BufferedImage image = ImageIO.read(iis);
try (OutputStream os = new FileOutputStream(outputFile)) {
ImageOutputStream ios = ImageIO.createImageOutputStream(os);
ImageIO.write(image, "jpg", ios);
} catch (Exception exp) {
exp.printStackTrace();
}
} catch (Exception exp) {
exp.printStackTrace();
}