直接上代码:
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格式的。
本文介绍了一段尝试将PNG格式图像转换为JPG格式,并探讨了如何在转换过程中保留原始图像的透明背景的方法。然而,由于JPG格式不支持透明度,因此无法直接实现透明背景的保留。文章深入解析了图像格式与透明度的关系,指出若需透明效果,应选用PNG或GIF格式。
866

被折叠的 条评论
为什么被折叠?



