Вращающийся BufferedImage меняет свои цвета

Я пытаюсь закодировать класс, чтобы сшить вырезанные изображения в направлении x и y. Направление x работает, и чтобы уменьшить направление y, я подумал о том, чтобы просто повернуть изображение на 90 ° и запустить тот же код для уже масштабированного изображения (только в направлении x), а затем повернуть его обратно в исходное состояние.

Я нашел что-то сAffineTransform и попробовал это. Это фактически произвело повернутое изображение, но испортило цвета, и я не знаю почему.

Это весь код:

import java.awt.image.BufferedImage;
import java.awt.geom.AffineTransform;
import java.awt.image.AffineTransformOp;
import java.io.File;
import java.io.IOException;
import javafx.scene.paint.Color;
import javax.imageio.ImageIO;


public class example {
/**
 * @param args the command line arguments
 */
public static void main(String[] args) throws IOException {
    // TODO code application logic here

    BufferedImage imgIn = ImageIO.read(new File("landscape.jpg"));
    BufferedImage imgIn2 = imgIn;

    AffineTransform tx = new AffineTransform();
    tx.rotate(Math.PI/2, imgIn2.getWidth() / 2, imgIn2.getHeight() / 2);//(radian,arbit_X,arbit_Y)

    AffineTransformOp op = new AffineTransformOp(tx, AffineTransformOp.TYPE_BILINEAR);
    BufferedImage last = op.filter(imgIn2, null);//(sourse,destination)
    ImageIO.write(last, "JPEG", new File("distortedColors.jpg"));
}

}

Просто измените имя файла в
BufferedImage imgIn = ImageIO.read(new File("landscape.jpg")); и попробуй это.

После выполнения вы получите 4 изображения: тепловую карту, изображение со швами и измененное изображение. Последнее изображение является тестом, чтобы увидеть, работает ли вращение, и оно должно показывать повернутое изображение, но с искаженными цветами ...

Помощь будет принята с благодарностью!

РЕДАКТИРОВАТЬ:

Ответы на вопрос(2)

Ваш ответ на вопрос