Java png 转 jpg

直接上代码: 

BufferedImage pngImage = ImageIO.read(new File("D:\\ImgTest\\test.png"));
BufferedImage bufferedImage = new BufferedImage(pngImage.getWidth(), pngImage.getHeight(), BufferedImage.TYPE_INT_RGB);
Graphics2D g = bufferedImage.createGraphics();
g.drawImage(pngImage, 0, 0, Color.white, null);
g.dispose();
ImageIO.write(bufferedImage, "jpg", new File("D:\\ImgTest\\test.jpg"));

这样处理会使用白色背景替换掉原先的背景色,如果想保留png的透明背景,是不行的。

搜到的解释:

JPG格式的图片不是RGBA模式的,所以没有办法设置它的透明度,若要将图像设置能透明的,图片要选择png或gif格式的。

你可能感兴趣的:(Java)