J'essaie de coder une classe pour sculpter des images sculpter dans les directions x et y. La direction x fonctionne, et pour réduire la direction y j'ai pensé à simplement faire pivoter l'image de 90 ° et passer le même code sur l'image déjà redimensionnée (dans la direction x seulement) et ensuite la faire revenir à son état initial.RotatingImageImage change ses couleurs
J'ai trouvé quelque chose avec AffineTransform
et je l'ai essayé. Il a effectivement produit une image pivotée, mais a gâché les couleurs et je ne sais pas pourquoi.
C'est tout le code:
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"));
}
}
Juste Modifions le nom de fichier dans
BufferedImage imgIn = ImageIO.read(new File("landscape.jpg"));
et l'essayer. Une fois exécuté, vous obtenez 4 images: une carte thermique, une image avec des coutures et une image redimensionnée. La dernière image est un test pour voir si la rotation a fonctionné et il devrait montrer une image tournée mais avec des couleurs déformées ...
Aide serait grandement appréciée!
EDIT:
Avez-vous Debug pour vous assurer que vous n'êtes pas d'écrire les données erronées à cette image finale? Avez-vous veillé à utiliser les mêmes paramètres de couleur (espace colorimétrique, etc.)? Aussi s'il vous plaît poster un [mvce] (http://stackoverflow.com/help/mcve), c'est trop de code IMO. – Thomas
Comment cela at-il gâché les couleurs? Est-ce que ça a été flou ou changé de couleurs comme tout le vert est devenu rose et ainsi? Peut-être pourriez-vous montrer vos images. –
Bien sûr, laissez-moi le modifier très rapidement! – ViktorG