2014-10-21 10 views
2

В Java вместо использования Photoshop для преобразования моих изображений (которые я использую в программе), я хочу использовать код для преобразования и сохранения.Сохранение преобразованного BufferedImage в Java

Я создал объект AffineTransform «at» и вызвал метод rotate(). У меня есть BufferedImage, называемый «образ».

я могу нарисовать изображение на экране с требуемым преобразованием с этим кодом:

g2d.drawImage(image, at, null); 

То, что я хочу сделать, это сохранить сочетание на и изображение в новом BufferedImage IMAGE2. Как я могу сделать это так, чтобы g2d.drawImage(image2,50,50, null); покажет повернутую версию изображения?

Редактировать: Я немного искал ответ Эзекиэля, чтобы получить эффект, который я хотел. Это сделал трюк:

BufferedImage image2= null; 
AffineTransformOp affineTransformOp = new AffineTransformOp(at,AffineTransformOp.TYPE_BILINEAR); 
image2 = affineTransformOp.filter(image, image2); 
g2d.drawImage(image2, 50, 50, null); 

ответ

2

С 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); 
+0

Это, вероятно, что мне нужно, но у меня есть некоторые проблемы. Если я инициирую преобразованное изображение как null, ничего не происходит, и экран пуст. Если я инициирую его с изображением, то исходное изображение находится поверх выбранного изображения преобразованного изображения. – WVrock

+0

Я исправил это, выполнив следующее: 'transform = affineTransformOp.filter (оригинал, преобразованный);' Благодарим вас за ответ. – WVrock

Смежные вопросы