如何加速图片的显示速度

tianwei76 2009-04-08 08:56:59
我做的一个应用程序。。
有六七个pictureBox
每次加载图片的时候,感觉很快,而不是一下子全出来。。
而背景图比这还大,显示就快多了。。。。。

如何解决。。
...全文
676 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianwei76 2009-04-22
  • 打赏
  • 举报
回复
继续顶。。。。。。。
NeptuneGrass 2009-04-22
  • 打赏
  • 举报
回复
ccb8888 2009-04-21
  • 打赏
  • 举报
回复
学习。。。绑定。。
tianwei76 2009-04-21
  • 打赏
  • 举报
回复
异步加载,双缓存,都试过,没什么效果。。。
很明显看到,先绘窗体,估后绘控件。。。。
求一个可行的解决办法。。。
tianwei76 2009-04-21
  • 打赏
  • 举报
回复
继续顶,求一个实例。。。谢谢大家
龙宜坡 2009-04-21
  • 打赏
  • 举报
回复
请使用异步加载!
tianwei76 2009-04-20
  • 打赏
  • 举报
回复
我发现如果FROM 如果不加上背景图,图片刷新会很快。。。
tianwei76 2009-04-19
  • 打赏
  • 举报
回复
情况一样。。。。。
torgersen 2009-04-18
  • 打赏
  • 举报
回复
双缓存技术 doubleBuffer可以解决
this.SetStyle(ControlStyles.AllPaintingInWmPaint |
ControlStyles.DoubleBuffer |
ControlStyles.UserPaint, true);
tianwei76 2009-04-18
  • 打赏
  • 举报
回复
继续求解!!!!!!!
兔儿爷 2009-04-15
  • 打赏
  • 举报
回复
绑顶哦。
wjp_auhtm 2009-04-15
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 tianwei76 的回复:]
引用 11 楼 wjp_auhtm 的回复:
a、如果是从硬盘读取的画
硬盘的读取速度可能是个瓶颈

b、可能lz希望同时显示7张图片,可以先定义Image类型的私有变量
用GetThumbnailImage方法得到图片的缩略图。
然后,将每个Image类型的变量赋值给7个pictruebox控件,这样就同步了。
因为,7个pictruebox控件在直接从硬盘加载时,代码的执行是有先后顺序的,而且是同类型控件的相同方法的调用,所以会不同步的显示。

VB 的IMAGE 就加…
[/Quote]

您实在C#区发的帖子么?
聖少俊 2009-04-15
  • 打赏
  • 举报
回复
可以设置一个计时器啊
RFEZGC 2009-04-15
  • 打赏
  • 举报
回复
要是放在资源文件里加载的话,速度就比较快,要是从磁盘目录里加载速度就慢
就要预先加载到一个IMAGE数组里,要的时候,再从数组里给

要是放在资源文件的话(因为生产EXE文件的话会一起包含在EXE文件里),
可以用一个线呈
例如:
1.创建一个全局的EventWaitHandle ew= new (.....)//俺没看帮助,忘了构造函数
2.threadProc需要一个死循环,
3.在其他线程里,如果特定的条件发生就::ew.set();
4.线程不能被abort,一旦被终止,就不能继续使用该线程了,除非在西够函数里调用
void threadProc(){
do{
ew.wait();//无限期等待,等待其他线程发来的set()

switch(pictrueIndex){
pictrueIndex//代指图片的索引
case 0: //index代指图片的
//do work;
breal;
case 1:
//do other work;
break;
}
}while(true);

}


tianwei76 2009-04-15
  • 打赏
  • 举报
回复
继续顶,顶到有高手为止。。
tianwei76 2009-04-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 simonezhlx 的回复:]
图片是在运行时加载还是在设计时选取的?
如果是在运行时加载的,在初始化六个picturebox之前,调用 this.SuspendLayout();

完成后再调用this.ResumeLayout(false); 减少界面刷新;

如果实际图形文件较大,可以考虑嵌入资源或通过双缓存预加载到内存中,使用时直接给picturebox
[/Quote]
外部文件 运行时加载的。。。且是通过数据库读取路径。。
simonezhlx 2009-04-14
  • 打赏
  • 举报
回复
图片是在运行时加载还是在设计时选取的?
如果是在运行时加载的,在初始化六个picturebox之前,调用 this.SuspendLayout();

完成后再调用this.ResumeLayout(false); 减少界面刷新;

如果实际图形文件较大,可以考虑嵌入资源或通过双缓存预加载到内存中,使用时直接给picturebox
随风v5 2009-04-14
  • 打赏
  • 举报
回复
最好例子来说名一下,等待牛人进来...
tianwei76 2009-04-14
  • 打赏
  • 举报
回复
继续求解。。。。。
tianwei76 2009-04-14
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 wjp_auhtm 的回复:]
a、如果是从硬盘读取的画
硬盘的读取速度可能是个瓶颈

b、可能lz希望同时显示7张图片,可以先定义Image类型的私有变量
用GetThumbnailImage方法得到图片的缩略图。
然后,将每个Image类型的变量赋值给7个pictruebox控件,这样就同步了。
因为,7个pictruebox控件在直接从硬盘加载时,代码的执行是有先后顺序的,而且是同类型控件的相同方法的调用,所以会不同步的显示。
[/Quote]
VB 的IMAGE 就加载图片时就不会有这问题。。。
加载更多回复(7)

110,538

社区成员

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

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

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