Я пытаюсь закодировать класс для шва, вырезающего изображения в направлениях x и y. Направление x работает, и для уменьшения направления y я думал просто поворачивать изображение на 90 ° и запускать тот же код по уже измененному изображению (только в направлении x), а затем повернуть его обратно в исходное состояние.Вращение BufferedImage меняет свои цвета
Я нашел что-то с 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 изображения: теплоизображение, изображение с швами в нем и изображение с масштабированием. Последнее изображение - это тест, чтобы увидеть, работает ли поворот, и он должен показывать повернутое изображение, но с искаженными цветами ...
Помощь была бы принята с благодарностью!
EDIT:
ли вы отладку, чтобы убедиться, что вы не пишете неправильные данные об этом конечном изображении? Удостоверились ли вы использовать одни и те же настройки цвета (цветовое пространство и т. Д.)? Также, пожалуйста, напишите [mvce] (http://stackoverflow.com/help/mcve), это слишком много кода IMO. – Thomas
Как это испортило цвета? Было ли это размытым или измененным цветом, как все зеленые розовые и так? Возможно, вы можете показывать свои изображения. –
Конечно, позвольте мне изменить его очень быстро! – ViktorG