我正在使用java swing应用程序项目。我想在我的JPanel
中将图像制作为图标,但在使用外部打印机打印图像时,它似乎是低质量图像。这是代码
ImageIcon ii=new ImageIcon(scaleImage(90, 107, ImageIO.read(new File(f.getAbsolutePath()))));
image.setIcon(ii);
如何制作除此方法之外的高质量图像图标?
答案 0 :(得分:0)
如果对Icon
使用缩小版图像,则在打印图标时无法补偿分辨率损失。
您可以创建自己的图标类(通过实现ImageIcon
界面,实际上非常简单),而不是使用javax.swing.Icon
,这可以使您的图像保持更高的分辨率,并将其绘制为更小的图像尺寸(但没有质量损失,因此您在打印时仍可以看到更多细节)。
这可以通过在绘制图像之前应用AffineTransform
/缩放,或使用graphics.drawImage(x,y,width,height,imageObserver)
来完成。
答案 1 :(得分:0)