2013-10-17 68 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)来完成。