2
我知道子像素的形狀,如Rectangle2D.Double
,Ellipse2D.Double
和Line2D.Double
- 但我無法找到與亞像素精度繪製Image
/BufferedImage
信息。的子像素圖像渲染
也許看起來像這樣的東西 - Image2D.Double
?
有什麼辦法可以實現這個目標嗎?
我知道子像素的形狀,如Rectangle2D.Double
,Ellipse2D.Double
和Line2D.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_ANTIALIASING
至VALUE_ANTIALIAS_ON
)。