zeism
发贴: 4
积分: 0
|
于 2006-08-16 21:13
任务:在固定区域内显示大图片,要求图片能自适应(调整)到该固定区域的大小,希望图像的效果尽量好。
我已经尝试了3种方法,但是效果都比不过Windows自带的画图工具。
1)得到Image之后,直接在JPanel里用Graphics#drawImage(image, 0, 0, fixedWidth, fixedHeight, null)方法绘制;
2)得到Image之后,使用Image#getScaledInstance(fixedWidth, fixedHeight, Image.SCALE_SMOOTH)得到缩小之后的Image,然后在JPanel里用Graphics#drawImage(image, 0,0, null)方法绘制;
3)得到Image之后,使用Image#getScaledInstance(fixedWidth, fixedHeight, Image.SCALE_SMOOTH)得到缩小之后的Image,然后把图像绘制在JLabel里:JLabel#setIcon(new ImageIcon(image))。
个人感觉这3种方法显示的图像的效果差不多,所以我有点怀疑它们是否最终使用了同样的方法?就是,是否在底层使用了同一个绘制方法?
还有,既然效果没有Windows的好,那么我猜它没有使用peer,没有使用本地OS的功能。
唉,晕死了。 有没有更好的处理图像大小自适应的方法和技巧啊? 请大牛给小弟指点迷津,Thanks ^_^
|