Estoy tratando de transformar una imagen volteándola horizontalmente y redimensionándola. El problema es que cuando se realiza la transformación, los colores de la imagen son raros, ha adquirido este tono rojizo. ¿Es posible arreglar esto de alguna manera, creo que leí en alguna parte que podría ser un error en la biblioteca AWT, pero no estoy seguro?¿La transformación de la imagen da como resultado una imagen roja?
Aquí está el código:
import java.awt.Graphics2D;
import java.awt.geom.AffineTransform;
import java.awt.image.AffineTransformOp;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class LocalImageSizeFlip {
public static void main(String[] args) {
BufferedImage img = null;
try {
img = ImageIO.read(new File("C:\\picture.jpg"));
AffineTransform tx = AffineTransform.getScaleInstance(1, -1);
tx.translate(0, -img.getHeight(null));
AffineTransformOp op = new AffineTransformOp(tx, AffineTransformOp.TYPE_NEAREST_NEIGHBOR);
img = op.filter(img, null);
img = resize(img, 100, 75);
File newFile = new File("newPicture.jpg");
ImageIO.write(img, "JPEG", newFile);
} catch (IOException e) {
e.printStackTrace();
}
}
private static BufferedImage resize(BufferedImage image, int width, int height) {
BufferedImage resizedImage = new BufferedImage(width, height,
BufferedImage.TYPE_INT_ARGB);
Graphics2D g = resizedImage.createGraphics();
g.drawImage(image, 0, 0, width, height, null);
g.dispose();
return resizedImage;
}
}
Véase también [cambio de color BufferedImage] (http://stackoverflow.com/questions/6122964/bufferedimage-colour-change) – trashgod