我正在使用java swing应用程序项目。我想在我的JPanel
中将图像制作为图标,但是当我使用外部打印机打印图像时,它似乎是低质量图像。这里是代码如何在java swing中制作高质量的图像图标?
ImageIcon ii=new ImageIcon(scaleImage(90, 107, ImageIO.read(new File(f.getAbsolutePath()))));
image.setIcon(ii);
如何使这种方法以外的高品质图像图标?
我正在使用java swing应用程序项目。我想在我的JPanel
中将图像制作为图标,但是当我使用外部打印机打印图像时,它似乎是低质量图像。这里是代码如何在java swing中制作高质量的图像图标?
ImageIcon ii=new ImageIcon(scaleImage(90, 107, ImageIO.read(new File(f.getAbsolutePath()))));
image.setIcon(ii);
如何使这种方法以外的高品质图像图标?
[是否只包含其他链接的答案真的是“好答案”? ](http://meta.stackexchange.com/questions/8231/are-answers-that-just-contain-links-elsewhere-really-good-answers) – Radiodef
如果您使用Icon
的缩小版图像,打印图标时无法补偿分辨率损失。
而不是使用ImageIcon
的,你可以创建自己的图标类(通过实现javax.swing.Icon
接口,它实际上很简单),这使你的形象在更高的分辨率和更小的尺寸描绘它(但没有质量损失,所以在打印时仍然可以看到更多细节)。 这可以通过在绘制图像之前应用AffineTransform
/Scale或使用graphics.drawImage(x,y,width,height,imageObserver)
来完成。
阅读有关图片大小(即http://stackoverflow.com/questions/14115950/quality-of-image-after-resize-very-low-java) 。还要考虑以正确的大小发送准备好的图像,而不要在应用程序内调整大小 – rebeliagamer
SCALE_SMOOTH方法可能对您有所帮助。 [Image.SCALE_SMOOTH](http://docs.oracle.com/javase/7/docs/api/java/awt/Image.html#SCALE_SMOOTH) – Prasad