Girar BufferedImage muda suas cores

Estou tentando codificar uma classe para costurar esculpir imagens nas direções x e y. A direção x está funcionando e, para reduzir a direção y, pensei em simplesmente girar a imagem 90 ° e executar o mesmo código sobre a imagem já redimensionada (somente na direção x) e, depois, girá-la de volta ao seu estado inicial.

Eu encontrei algo comAffineTransform e tentei. Na verdade, produziu uma imagem rotacionada, mas bagunçou as cores e não sei por quê.

Este é todo o código:

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"));
}

}

Basta alterar o nome do arquivo em
BufferedImage imgIn = ImageIO.read(new File("landscape.jpg")); e tente.

Quando executado, você obtém 4 imagens: um mapa de calor, uma imagem com costuras e uma imagem redimensionada. A última imagem é um teste para verificar se a rotação funcionou e deve mostrar uma imagem girada, mas com cores distorcidas ...

A ajuda seria muito apreciada!

EDITAR:

questionAnswers(2)

yourAnswerToTheQuestion