2013-10-17 93 views
0

我正在使用java 應用程序項目。我想在我的JPanel中將圖像製作爲圖標,但是當我使用外部打印機打印圖像時,它似乎是低質量圖像。這裏是代碼如何在java swing中製作高質量的圖像圖標?

ImageIcon ii=new ImageIcon(scaleImage(90, 107, ImageIO.read(new File(f.getAbsolutePath())))); 
    image.setIcon(ii); 

如何使這種方法以外的高品質圖像圖標?

+0

閱讀有關圖片大小(即http://stackoverflow.com/questions/14115950/quality-of-image-after-resize-very-low-java) 。還要考慮以正確的大小發送準備好的圖像,而不要在應用程序內調整大小 – rebeliagamer

+1

SCALE_SMOOTH方法可能對您有所幫助。 [Image.SCALE_SMOOTH](http://docs.oracle.com/javase/7/docs/api/java/awt/Image.html#SCALE_SMOOTH) – Prasad

回答

0

如果您使用Icon的縮小版圖像,打印圖標時無法補償分辨率損失。

而不是使用ImageIcon的,你可以創建自己的圖標類(通過實現javax.swing.Icon接口,它實際上很簡單),這使你的形象在更高的分辨率和更小的尺寸描繪它(但沒有質量損失,所以在打印時仍然可以看到更多細節)。 這可以通過在繪製圖像之前應用AffineTransform/Scale或使用graphics.drawImage(x,y,width,height,imageObserver)來完成。