Вращение изображения Java с помощью AffineTransform выводит черное изображение, но хорошо работает при изменении размера

Я просто пытаюсь повернуть файл JPG на 90 градусов. Однако мой код выводит изображение ( BufferedImage), которое полностью черное.

Вот способ воспроизведения: (Скачать 3.jpgздесь)

private static BufferedImage transform(BufferedImage originalImage) {
    BufferedImage newImage = null;
    AffineTransform tx = new AffineTransform();
    tx.rotate(Math.PI / 2, originalImage.getWidth() / 2, originalImage.getHeight() / 2);

    AffineTransformOp op = new AffineTransformOp(tx, AffineTransformOp.TYPE_BICUBIC);
    newImage = op.filter(originalImage, newImage);

    return newImage;
}

public static void main(String[] args) throws Exception {
    BufferedImage bi = transform(ImageIO.read(new File(
            "3.jpg")));
    ImageIO.write(bi, "jpg", new File("out.jpg"));

}

Что здесь не так?

(если я передам этот черный вывод BufferedImageбиблиотеке изменения размера изображения, он будет хорошо изменен, исходное изображение все еще там.)

5
задан AhmetB - Google 17 March 2012 в 10:37
поделиться