Estoy intentando rotar un archivo JPG en 90 grados. Sin embargo, mi código muestra imagen (BufferedImage
) que es completamente negra.Giro de imagen de Java con AffineTransform genera una imagen en negro, pero funciona bien cuando se cambia de tamaño
Ésta es la manera de reproducir: (Descargar 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"));
}
¿Qué pasa aquí?
(si doy esta salida negro BufferedImage
a una biblioteca de imágenes cambiar el tamaño, que se cambia de tamaño, así, la imagen original todavía está allí.)