码迷,mamicode.com
首页 > 其他好文 > 详细

如何解决GDI+渲染图片慢的问题?

时间:2015-09-14 00:42:08      阅读:260      评论:0      收藏:0      [点我收藏+]

标签:winform gdi+ slow timer thread

    项目是做一个画图程序,最近加入了一个图片闪烁的效果,用timer定时每100ms画一遍,每遍通过colormatrix设置不同的alpha值实现(colormatrix几乎不会增加负荷,渲染速度仅增加1ms消耗)。效果是没问题,但是效率有问题了。当画一个3000*3000的jpeg图片的时候,debug模式下测试平均需要8ms(graphics的所有参数都设置为速度优先),此时还比较流畅。但是当图片缩小后再画出来就达到35ms左右(通过Gdi.ScaleTransform()进行缩放的),效率明显下降,卡顿严重,鼠标move、click事件都不响应了,伤脑筋了,没有想到好的解决办法,放大没事,就缩小会卡。总结一下,问题的原因就是大幅图片缩小画出来效率低。

    多线程能解决吗?想用主线程的timer发重画请求道queue里面,多个线程从queue中取出请求在后台线程渲染整幅图片然后发到另一个queue中,主线程从这个queue中取按请求顺序取图片画到form上。同时主线程响应用户鼠标move、click等操作改变图形的坐标等状态。但是对c#多线程不熟,怎么同步呢?能提高效率吗?

TO BE CONTINUED...

本文出自 “一些” 博客,谢绝转载!

如何解决GDI+渲染图片慢的问题?

标签:winform gdi+ slow timer thread

原文地址:http://2924037.blog.51cto.com/2914037/1694371

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!