Субпиксельная визуализация изображений - PullRequest
2 голосов
/ 01 декабря 2011

Мне известны формы субпикселей, например Rectangle2D.Double, Ellipse2D.Double и Line2D.Double, но я не смог найти информацию о рисовании Image / BufferedImage с точностью до субпикселя.

Возможно, что-то похожее на это - Image2D.Double?

Есть ли способ, которым я могу этого достичь?

1 Ответ

4 голосов
/ 01 декабря 2011

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

(См. drawImage (Image, AffineTransform, ImageObserver) метод)

Например, чтобы нарисовать изображение, масштабированное до половины размера и в позиции (10,5, 10,5), используйте:

Graphics2D g = ...
BufferedImage myImage = ...
AffineTransform t = new AffineTransform();
t.translate(10.5, 10.5);
t.scale(0.5, 0.5);
g.drawImage(myImage, t, null);

Вы должны убедиться, что соответствующие RenderingHints были установлены для объекта Graphics2D (установите KEY_ANTIALIASING в VALUE_ANTIALIAS_ON для начинающих).

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