最近我写了一个方法,拍摄照片并做了一个水平镜子(也称为水平翻转),这对我尝试的所有照片(直到今天)工作正常。今天我尝试了下面的照片,得到了以下结果。由于某些原因,大部分图像颜色已变为红色。
原始图片
处理后的图像
原始图像是png,输出是jpeg。我不确定这是否与它有关。这是执行翻转的代码
public BufferedImage flipImageHorizentally(String imagePath) throws IOException {
BufferedImage bufferedImage = ImageIO.read(new File(imagePath));
AffineTransform tx = AffineTransform.getScaleInstance(-1, 1);
tx.translate(-bufferedImage.getWidth(null), 0);
AffineTransformOp op = new AffineTransformOp(tx, AffineTransformOp.TYPE_NEAREST_NEIGHBOR);
bufferedImage = op.filter(bufferedImage, null);
System.out.println("Flipped the image horizentally!");
return bufferedImage;
}
然后我保存使用下面代码返回的bufferedImage
static void SaveImageToDisk(BufferedImage bufferedImage) {
String folderName = "ProcessedImages";
Common.CreateFolderIfNotExists(folderName);
try {
// retrieve image
File outputfile = new File(folderName + File.separator + UUID.randomUUID().toString() + ".jpg");
ImageIO.write(bufferedImage, "jpg", outputfile);
} catch (IOException e) {
e.printStackTrace();
}
}
是什么原因导致修改后的图像变红?我怎样才能防止这种情况发生?