2011-12-01 102 views
2

我知道子像素的形狀,如Rectangle2D.DoubleEllipse2D.DoubleLine2D.Double - 但我無法找到與亞像素精度繪製Image/BufferedImage信息。的子像素圖像渲染

也許看起來像這樣的東西 - Image2D.Double

有什麼辦法可以實現這個目標嗎?

回答

3

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