Изображения могут быть нарисованы с помощью 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
для начинающих).