Java Swing: вращение Graphics2D, создающее отвратительные края - PullRequest
1 голос
/ 15 февраля 2011

У меня проблема с поворотом изображений

Graphics2D g2 = (Graphics2D) g;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
AffineTransform at = new AffineTransform();
at.setToIdentity();
at.translate(x, y);
at.rotate(Math.toRadians(angle));
g2.transform(at);
image.paintIcon(c, g2);

Я использую этот код для поворота изображения перед его рисованием (изображение - это класс, который я создал, чтобы помочь мне справиться с загрузкой изображения.

К сожалению, у меня проблема с краями изображения, которые становятся действительно плохими (см. Рисунок) enter image description here

есть идеи, как я могу улучшить качество розыгрыша?

1011 * Ясон *

Ответы [ 2 ]

5 голосов
/ 15 февраля 2011

А как насчет сглаженных ребер и билинейного преобразования? Вы можете увидеть пример здесь . Также проверьте свой тип изображения, в примере используется BufferedImage.

g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
                   RenderingHints.VALUE_INTERPOLATION_BILINEAR);
1 голос
/ 15 февраля 2011

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

...