将图像文件从PNG转换为JPEG时,请注意质量会下降,因为两者的格式都不相同,因此JPEG图像文件中可能不存在PNG中的某些效果。 例如,JPEG图像文件不支持PNG中的透明背景,有关更多信息,请单击Google。
例
这是一个将透明背景的PNG文件转换为白色背景的JPEG图像的Java示例。
文件:javanullpointer.png,4kb
运行下面的代码。
package com.mkyong;
import java.awt.Color;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class ConvertImageFile {
public static void main(String[] args) {
BufferedImage bufferedImage;
try {
//read image file
bufferedImage = ImageIO.read(new File("c:\\javanullpointer.png"));
// create a blank, RGB, same width and height, and a white background
BufferedImage newBufferedImage = new BufferedImage(bufferedImage.getWidth(),
bufferedImage.getHeight(), BufferedImage.TYPE_INT_RGB);
newBufferedImage.createGraphics().drawImage(bufferedImage, 0, 0, Color.WHITE, null);
// write to jpeg file
ImageIO.write(newBufferedImage, "jpg", new File("c:\\javanullpointer.jpg"));
System.out.println("Done");
} catch (IOException e) {
e.printStackTrace();
}
}
}
输出量
生成一个新的jpg文件,带有白色背景。
档案:javanullpointer.jpg,9kb
注意
此代码使用少量PNG图像文件进行了测试,转换后的JPEG图像文件的质量合格。
翻译自: https://mkyong.com/java/convert-png-to-jpeg-image-file-in-java/