处理后图像大部分变红

时间:2017-04-07 08:18:21

标签: java image-processing

最近我写了一个方法,拍摄照片并做了一个水平镜子(也称为水平翻转),这对我尝试的所有照片(直到今天)工作正常。今天我尝试了下面的照片,得到了以下结果。由于某些原因,大部分图像颜色已变为红色。

原始图片

enter image description here

处理后的图像

enter image description here

原始图像是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();
    }
}

是什么原因导致修改后的图像变红?我怎样才能防止这种情况发生?

0 个答案:

没有答案