Хранение преобразованного BufferedImage в Java
В Java вместо использования Photoshop для преобразования моих изображений (которые я использую в программе) я хочу использовать код для преобразования и сохранения их.
Я создал объект AffineTransform "в" и назвал rotate()
метод. У меня есть BufferedImage под названием "изображение".
Я могу нарисовать изображение на экране с нужным преобразованием с помощью этого кода:
g2d.drawImage(image, at, null);
Я хочу сохранить комбинацию at и image в новом BufferedImage image2. Как я могу сделать это так, чтобыg2d.drawImage(image2,50,50, null);
покажет повернутую версию изображения?
редактировать: я немного подправил ответ Ezequiel, чтобы получить эффект, который я хотел. Это сделало трюк:
BufferedImage image2= null;
AffineTransformOp affineTransformOp = new AffineTransformOp(at,AffineTransformOp.TYPE_BILINEAR);
image2 = affineTransformOp.filter(image, image2);
g2d.drawImage(image2, 50, 50, null);
1 ответ
Решение
С AffineTransformOp
учебный класс:
BufferedImage original; //Instatiate with desired image.
BufferedImage transformed: //Used to store transformed image.
AffineTransform at; //Transformations needed.
AffineTransformOp affineTransformOp = new AffineTransformOp(at, AffineTransformOp.TYPE_BILINEAR);
affineTransformOp.filter(original, transformed );