Graphics缩放的图片不清晰,是我哪里用错了吗?

2020-04-02 22:14发布

问题:

图片缩放代码:

1 JLabel img=new JLabel(){
2                 protected void paintComponent(Graphics g) {
3                     ImageIcon icon = new ImageIcon(mypath+filelist[myi]);
4                     g.drawImage(icon.getImage(), 0, 0, (int)(getWidth()*1.0),(int)(icon.getIconHeight()*(getWidth()*1.0)/icon.getIconWidth()),
5                             icon.getImageObserver());
6                 }
7             };

这里是程序中显示的图片:

程序里显示的图片文字特别不清晰,实际上我原图是非常清晰的,直接从PDF转换成的图片

我硬盘上的原图:

求教一下各位大佬,我这里犯了什么错误吗,或者说还有更好的办法,求教求教啊

回答1:

换了一个好用的API



回答2:

其实在某些pdf上显示的图片也跟你压缩的图片显示差不多。
两个猜想:
1 看原图和缩图的效果图片像是进行了一定的二值化处理(但是应该不是,不可能给你多做一步)
2 因为不是像素点矢量图算出来的,缩放的时候取像素点以某种方式取的,取完之后看起来像是二值化了一样.

建议:
查一查资料,没有就换方法把- -



回答3:

不熟悉这个java库,但根据多数基础类库经验来看,调整一下参数是可以清晰点的。一般会提供一个smooth的参数,有的是在Graphic上,有的是直接在函数上。你试试找找。