的子像素图像渲染

问题描述:

我知道子像素的形状,如Rectangle2D.DoubleEllipse2D.DoubleLine2D.Double - 但我无法找到与亚像素精度绘制Image/BufferedImage信息。的子像素图像渲染

也许看起来像这样的东西 - Image2D.Double

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

可以用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_ANTIALIASINGVALUE_ANTIALIAS_ON)。