我正在尝试编写一个类来缝合 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 张图像:一张热图、一张带有接缝的图像和一张重新缩放的图像。最后一张图片是一个测试,看看旋转是否有效,它应该显示一个旋转的图像,但颜色失真......
帮助将不胜感激!
编辑: