求C#中快速获取图片缩略图(效率要很快)

lqb_123 2014-02-26 06:01:21
问一下大家,知不知道C#中获取图片缩略图的快速方式.
使用C#自带的Image.GetThumbnailImage();是现在我找到的最快的算法,但还是不够快,比如处理400M的照片数据要十几秒;

我看其他的一些程序,比如<美图看看>秒速处理上G的图片数据量,不知道是怎么做到的.

我试过将照片数据锁定到系统内存中,使用指针遍历的产生缩略图的效率还不如C#自身提供的.
(慢了一倍,我分析了一下效率,70%左右的效率是浪费在图片格式转换上了,这个没办法了).


我也听过读取Window资源文件夹下的Thumbs.db文件,这个方法速度是快,但不能保证该文件夹下一定有Thumbs.db文件啊.
不知道,大家有什么想法.

还有JPG和PSD格式的图片是有内置缩略图的,其他格式的就没有了 .
...全文
1333 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
亚特兰蒂斯DE 2014-03-25
  • 打赏
  • 举报
回复
正需要 ..不知道解决方案
公西雒 2014-02-27
  • 打赏
  • 举报
回复
引用 楼主 lqb_123 的回复:
问一下大家,知不知道C#中获取图片缩略图的快速方式. 使用C#自带的Image.GetThumbnailImage();是现在我找到的最快的算法,但还是不够快,比如处理400M的照片数据要十几秒; 我看其他的一些程序,比如<美图看看>秒速处理上G的图片数据量,不知道是怎么做到的. 我试过将照片数据锁定到系统内存中,使用指针遍历的产生缩略图的效率还不如C#自身提供的. (慢了一倍,我分析了一下效率,70%左右的效率是浪费在图片格式转换上了,这个没办法了). 我也听过读取Window资源文件夹下的Thumbs.db文件,这个方法速度是快,但不能保证该文件夹下一定有Thumbs.db文件啊. 不知道,大家有什么想法. 还有JPG和PSD格式的图片是有内置缩略图的,其他格式的就没有了 .
大牛!
showjim 2014-02-26
  • 打赏
  • 举报
回复
大图片秒开缩略图有三种情况,一是已经有缩略图直接读取,二是文件格式支持交叉流并且要处理的图片存储使用了交叉流,三是操作系统缓存了文件内存。否则400M的文件,我的本本读取要20+s。 自己写程序能过处理的仅仅是第二种情况,需要熟悉各种图片文件格式。
laviewpbt 2014-02-26
  • 打赏
  • 举报
回复
400M的文件肯定是BMP文件,不太可能是JPG,因为这么大的JPG你用C#时无法打开的。 美图看看有N多BUG, 他秒速处理上G大小的图片数量,绝对不是第一次查看的时候。 关于C#的查看缩略图的东西,我曾经发表过一篇文章 http://www.cnblogs.com/Imageshop/archive/2013/06/16/3138623.html

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧