Sto solo provando a ruotare un file JPG di 90 gradi. Tuttavia il mio codice emette un'immagine (BufferedImage
) completamente nera.Rotazione immagine Java con AffineTransform restituisce l'immagine nera, ma funziona correttamente se ridimensionata
Ecco il modo per riprodurre: (Scarica 3.jpg here)
private static BufferedImage transform(BufferedImage originalImage) {
BufferedImage newImage = null;
AffineTransform tx = new AffineTransform();
tx.rotate(Math.PI/2, originalImage.getWidth()/2, originalImage.getHeight()/2);
AffineTransformOp op = new AffineTransformOp(tx, AffineTransformOp.TYPE_BICUBIC);
newImage = op.filter(originalImage, newImage);
return newImage;
}
public static void main(String[] args) throws Exception {
BufferedImage bi = transform(ImageIO.read(new File(
"3.jpg")));
ImageIO.write(bi, "jpg", new File("out.jpg"));
}
Cosa c'è di sbagliato qui?
(se io do questa uscita nero BufferedImage
a una libreria Image Resizer, esso viene ridimensionata bene, immagine originale è ancora lì.)