2009-04-21 3 views
2

Я ищу хорошую альтернативу пакету javax.imageio, который позволяет мне выполнять простые операции поворота, резки и масштабирования изображений. Например, я хотел бы сделатьЕсть ли хорошая альтернатива javax.imageio?

int angle, height, width; 
image.rotateRight(angle).scale(height, width); 

для того, чтобы получить изображение, которое вращается угла градусов вправо и уменьшенное до высоты х ширина пикселей.

Использование Graphics2D и BufferedImages, я должен сделать это, который не является ни для чтения, ни просто написать:

BufferedImage result = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); 
Graphics2D graphics = result.createGraphics(); 
graphics.translate(height/2, width/2); 
graphics.rotate(angle); 
graphics.translate(-width/2, -height/2); 
graphics.drawImage(image, 0, 0, width, height, null); 

(На самом деле, этот код не учитывает даже неквадратные изображения, которые потребует от меня сделать еще больше магии при переводе).

ответ

5

Есть Java Advanced Imaging API, который содержит полезные материалы, такие как RotatorDescriptor.

Но признаюсь, я нахожу ваше выше пример довольно читаемым, так что я не уверен, что вы получите нечто большее по своему вкусу :-)

+0

Спасибо, я посмотрю на это – Jorn

3

Я согласен с Брайаном: JAI очень хороший вариант для вас. Возможно, вам придется написать некоторый объект-делектор, чтобы получить такой читаемый код, который вам нужен, и использовать его вместо JAI API.

Также вы можете использовать Обработку (http://processing.org). Это API проще, чем API JAI. И в результате использования Processing вы получите лучшее качество для масштабирования и вращения операций по умолчанию.

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