當我將Swing組件呈現給圖像時,字體不同,然後組件在屏幕上呈現。這裏是一個圖像顯示的區別:組件繪成圖像呈現醜陋的字體
這是代碼:
public static BufferedImage renderComponent(Component component) {
int width = component.getWidth();
int height = component.getHeight();
BufferedImage buffImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
Graphics2D g = (Graphics2D) buffImage.getGraphics();
g.setFont(component.getFont());
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
component.paint(g);
g.dispose();
return buffImage;
}
我應該換作一個Swing組件的一個完美的屏幕截圖? (該應用程序在Windows 7上運行)
有完全相同的問題。使用`TYPE_INT_ARGB`時,字體很難看,並且在使用屏幕圖像(具有良好字體)開始的動畫中使用時,它被認爲是所有文本都是像素移動的。它確實通過`TYPE_INT_RGB`解決。 (我在屏幕上和圖像中使用了模糊面板內容的動畫序列,因此我先讓面板繪製到緩衝區,然後開始模糊動畫中的緩衝區)。 – Timmos 2016-05-11 08:55:39