解决完突然发现复现不出来了。0.0
不贴问题图了,直接两行代码解决。
//修复图片失真问题
BufferedImage newBufferedImage = new BufferedImage(backImage.getWidth(), backImage.getHeight(), BufferedImage.TYPE_INT_RGB);
newBufferedImage.createGraphics().drawImage(backImage, 0, 0, Color.WHITE, null);
来一波完整的代码
BufferedImage read = ImageIO.read(new File("C:\\Users\\lenovo\\Pictures\\Camera Roll\\平安2021.jpg"));
//缩放
BufferedImage bufferedImage = ImageEdit.zoomByScale(read, 1.2);
//旋转
BufferedImage backImage = ImageEdit.rotateImage(bufferedImage, 45);
//这里输出的图片有时候会失真,背景变为橙红色
ImageIO.write(backImage, "png", new File("C:\\Users\\lenovo\\Pictures\\Camera Roll\\test_0x.png"));
//修复图片失真问题
BufferedImage newBufferedImage = new BufferedImage(backImage.getWidth(), backImage.getHeight(), BufferedImage.TYPE_INT_RGB);
newBufferedImage.createGraphics().drawImage(backImage, 0, 0, Color.WHITE, null);
//消除旋转后的白色底片
BufferedImage bufferedImage1 = ImageEdit.transferAlpha(newBufferedImage);
//输出消除白色底片后的图片(透明底片)
ImageIO.write(bufferedImage1, "png", new File("C:\\Users\\lenovo\\Pictures\\Camera Roll\\test_01.png"));