Java BufferedImage Повернуть
Мне нужно повернуть изображение JPG, поэтому я написал эту функцию:
BufferedImage rotate(BufferedImage bufferedImage) {
AffineTransform tx = new AffineTransform();
tx.rotate(Math.PI/2.0, bufferedImage.getWidth() / 2, bufferedImage.getHeight() / 2);
AffineTransformOp op = new AffineTransformOp(tx, AffineTransformOp.TYPE_BILINEAR);
return op.filter(bufferedImage, null);
}
Я использую ImageIO для чтения и записи изображения из файла:
String [] photos = { "IMG_1998.JPG" , "IMG_1999.JPG" ,"IMG_2001.JPG" ,"IMG_2002.JPG" ,"IMG_2003.JPG"};
for(int i=0; i<photos.length-1; i++) {
BufferedImage nextImage = rotate(ImageIO.read(new File("d:/gif/" + photos[i])));
ImageIO.write(nextImage, "JPG", new File("d:/gif/A_" + photos[i]));
}
Однако, когда я просматриваю выходные файлы изображений, все они отображаются как негативные. (Я хотел бы прикрепить изображения здесь) Может кто-то указать, где я делаю неправильно?
Спасибо,
Alex
1 ответ
Как и комментарий @haraldk, передайте полученное изображение в функцию AffineTransformOp.filter вместо использования null. Прочитайте комментарий @haraldk для объяснения.
С уважением.