Topic: 图像大小的自适应(缩小)

  Print this page

1.图像大小的自适应(缩小) Copy to clipboard
Posted by: zeism
Posted on: 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 ^_^

2.Re:图像大小的自适应(缩小) [Re: zeism] Copy to clipboard
Posted by: cxp108
Posted on: 2006-08-18 11:08

楼主能具体说一说不好在哪里么,速度?图像清晰度?色彩?

3.Re:图像大小的自适应(缩小) [Re: zeism] Copy to clipboard
Posted by: zeism
Posted on: 2006-08-22 14:17

我只是用眼睛看的,感觉图像的清晰度不好。

BTW:
(1)Java有没有提供接口阅读JPEG图像的分辨率(dpi)?
(2)Java有没有提供方法可以修改图像的分辨率?
(3)在Component上显示图像的时候,能否用其他分辨率?比如,原始分辨率为72dpi的图像,能否以144dpi在JPanel上显示?这样,图像的大小就缩小了一半,看起来会更清晰。

谢谢。

4.Re:图像大小的自适应(缩小) [Re: zeism] Copy to clipboard
Posted by: zeism
Posted on: 2006-08-22 17:02

有没有人可以告诉我windows自带的画图工具是如何处理“拉伸”(scale)操作的?为什么它的处理效果可以这么完美?

5.Re:图像大小的自适应(缩小) [Re: zeism] Copy to clipboard
Posted by: cxp108
Posted on: 2006-08-25 09:23

楼主你接触的图像技术可能比我要深很多,这个问题我可能没办法帮你。
估计论坛上能帮你的人也不多。

不过我可以给你一个建议,现在市面上有一本叫《数字图像技术Java实现》(好像是叫这个名字的),你去找来看看。我看过一点,里面有图像清晰度还原的算法,你应该可以参考一下。

6.Re:图像大小的自适应(缩小) [Re: zeism] Copy to clipboard
Posted by: chenyoufan
Posted on: 2006-09-15 10:32

请LZ到官方下载ImageIO这个图象处理包,里面封装了一些对图象IO操作的接口
包括获取图象文件头信息,图象基本信息,以及图象2进制流
可以尝试一下,可能对你有些帮助

7.Re:图像大小的自适应(缩小) [Re: zeism] Copy to clipboard
Posted by: dejinzhao
Posted on: 2006-10-17 07:19

用Graphics2D对象的相应方法设置Scale即可!!!

Graphics2D g2d = (Graphics2D)g;
g2d.scale(.5f,0.5f);//缩小1/2

8.Re:图像大小的自适应(缩小) [Re: zeism] Copy to clipboard
Posted by: gaogangde
Posted on: 2006-11-11 16:21

够专业的


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923