子像素图像渲染

时间:2011-12-01 01:06:46

标签: java graphics

我知道子像素形状,例如Rectangle2D.DoubleEllipse2D.DoubleLine2D.Double - 但我找不到有关绘制Image / {{的信息1}}具有亚像素精度。

也许是这样的事情 - BufferedImage

有什么方法可以实现这个目标吗?

1 个答案:

答案 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_ANTIALIASINGVALUE_ANTIALIAS_ON。)