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 |