我知道子像素形状,例如Rectangle2D.Double
,Ellipse2D.Double
和Line2D.Double
- 但我找不到有关绘制Image
/ {{的信息1}}具有亚像素精度。
也许是这样的事情 - BufferedImage
?
有什么方法可以实现这个目标吗?
答案 0 :(得分:4)
可以使用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);
您应该确保在Graphics2D对象上设置了适当的RenderingHints(对于初学者,设置为KEY_ANTIALIASING
到VALUE_ANTIALIAS_ON
。)