如何降低图片的内存占用量

wavyspeed 2006-06-03 09:36:55
我在做一个类似Picasa2一样的照片管理软件,要求在运行时把大量图片加载进内存,但仅显示一个很小的缩略图,我现在用的是PictureBox控件来显示图片,发现每一个PictureBox对像都会把整个图片加载进内存,结果才10多张图片就用了200多M的内在,怎样才能让它只加载一个缩略图到内存啊?

还有,如果不用PictureBox的话可以用什么控件?我试过用ImageList +ListView,但发现图片显示的效果很差,这个能不能优化一下显示效果?
...全文
1200 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
BlueDog 2006-06-03
  • 打赏
  • 举报
回复
C#中可以使用Image.GetThumbnailImage
来取得缩略图。
一般地应分成两个线程
一个线程读取第一张
第二个线程取得各图的缩略图
其流程大概如下
Image imageThumb;
using(Image image = Image.FromFile(...))
{
imageThumb = image.GetThumbnailImage(...)
}
...
这样的话就会把内存降下来
Knight94 2006-06-03
  • 打赏
  • 举报
回复
还有自动生成缩略图,参看
http://www.codeproject.com/csharp/thumbgenerator.asp
Knight94 2006-06-03
  • 打赏
  • 举报
回复
你最好还是动态加载,每次真正显示的图片列不要太多。
liujiayu10 2006-06-03
  • 打赏
  • 举报
回复
至少要先压缩
Ivony 2006-06-03
  • 打赏
  • 举报
回复
先去研究别人怎么做的,这些办法很容易就能想出来。
Ivony 2006-06-03
  • 打赏
  • 举报
回复
把图片读进来,创建缩略图,然后自己在本地系统上创建一个缩略图缓存,如Windows的Thumb.db。再把原图片释放掉,以后浏览都从缩略图缓存中读。
我啃 2006-06-03
  • 打赏
  • 举报
回复
生成缩略图可以达到效果
NogamesNow 2006-06-03
  • 打赏
  • 举报
回复
mark!
开心颗粒 2006-06-03
  • 打赏
  • 举报
回复
这篇文章有讲到在c#中实现缩略图的。
不过好像是在asp.net下,看看吧。
http://dotnet.chinaitlab.com/csharp/381807.html
Yuna_2z 2006-06-03
  • 打赏
  • 举报
回复
mark
wavyspeed 2006-06-03
  • 打赏
  • 举报
回复
嗯,好的,我试试看哦

110,534

社区成员

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

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

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