社区
界面
帖子详情
graphics.DrawImage 绘图太慢了 应如何办
清水迎朝阳
博客专家认证
2009-10-21 10:03:53
我用 Image 打开一系列.tif图像
然后调用 graphic.DrawImage()依次在屏幕上显示出来
虽然能正常显示
但是绘图时太慢了 ,经常卡住
请问如何处理,原因为何 请给出实例代码 谢谢
...全文
1434
8
打赏
收藏
graphics.DrawImage 绘图太慢了 应如何办
我用 Image 打开一系列.tif图像 然后调用 graphic.DrawImage()依次在屏幕上显示出来 虽然能正常显示 但是绘图时太慢了 ,经常卡住 请问如何处理,原因为何 请给出实例代码 谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
百事烟
2009-10-21
打赏
举报
回复
原比例显示很快的,用什么都一样,最终都是调用的GDI函数,当然直接用GDI最好
如果显示有缩放的话,用什么显示都会很慢,因中间有个插值算法,
chenyu2202863
2009-10-21
打赏
举报
回复
你觉得此函数不好,你可以用GDI+来加载图片,然后转成HBITMAP,再用GDI来输出
news007
2009-10-21
打赏
举报
回复
GDI+在性能上整体是要比GDI慢一些的
--------------------------------
界面与逻辑彻底分离的利器:
DirectUI
界面开发网站:
www.uipower.com
我是苦力
2009-10-21
打赏
举报
回复
如果你是老是不断绘制那么几个同样的图片的话.
那么把这些图片先在内存上绘制成bmp(大小按要求),等再绘制到wnd的时候就绘制这些在内存上的bmp.
快N倍. 主要是不会再有缩放,不会有解码tif什么的.
laviewpbt
2009-10-21
打赏
举报
回复
当然,GDI+还有一个CachedBtimap类,可以加快图像的绘制,你可以去了解一下。这个会多占用一些内存。
laviewpbt
2009-10-21
打赏
举报
回复
GDI+在性能上整体是要比GDI慢一些的,关于绘图函数,GDI+中之只有一个DrawImage的多种重载函数,而在GDI中,有bitblt,strechblt等等,一般情况下,如果你要绘制的图像不是32位的图像,可以下转换为GDI对象,然后用bitblt绘制,如果是32位的图像,用DrawImage还是比较快的。
百事烟
2009-10-21
打赏
举报
回复
如果不缩放的话用GDI和GDI+给图几乎没区别,一样快,直接用GDI+输出就很好
有缩放的话直接用GDI和GDI+都会很慢,得想别的办法,
清水迎朝阳
2009-10-21
打赏
举报
回复
请问 如何用 GDI+来加载图片,然后转成HBITMAP,再用GDI来输出
能不能给出代码实例说明
我是第一次接触图像方面的知识 很多都不知道
还在为
Graphics
.
DrawImage
速度
慢
的问题发愁吗,请看这里
这是本人来CSDN首次写文章,请大家多关照。最近在公司做一个.NET下的SCADA程序,语言是C#,动画部分使用的是GDI+和Timer来绘制。在画图片的时候使用的是强大的
Graphics
类的
DrawImage
(
DrawImage
UnScaled),但是感觉不是一般的
慢
,这个时候想起以前在C+SDK时使用的BitBlt,效率很高,于是参考了一些资料并整理如下代码供大家参考: using S
【转】
Graphics
.
DrawImage
方法 IntPtr 结构 GDI 句柄 知识收集
Graphics
.
DrawImage
方法 在指定的位置使用原始物理大小绘制指定的Image。 命名空间:System.Drawing 程序集:System.Drawing(在 system.drawing.dll 中) public void
DrawImage
( Image image, Point point ) 参数 image 要绘制的Image。 ...
Graphics
.
DrawImage
方法 IntPtr 结构 GDI 句柄 知识收集
Graphics
.
DrawImage
方法 在指定的位置使用原始物理大小绘制指定的 Image。 命名空间:System.Drawing 程序集:System.Drawing(在 system.drawing.dll 中) public void
DrawImage
( Image image, Point point ) 参数 image 要绘制的 Ima
GDI+中
drawimage
效率低的问题
视频显示中对图片的处理效率要求比较高,当图像的尺寸比较小时,
drawimage
的
绘图
效率没问题,但当分辨率高时,视频莫名奇妙的总是卡住。 其实
drawimage
主要做了两方面的工作,一是图片缩放,二是图片显示。可以自己实现缩放,然后用SetDIBits显示图片。...
C#
绘图
双缓冲
C#
绘图
双缓冲 C#双缓冲解释: 简单说就是当我们在进行画图操作时,系统并不是直接把内容呈现到屏幕上,而是先在内存中保存,然后一次性把结果输出来,如果没用双缓冲的话,你会发现在画图过程中屏幕会闪的很厉害,因为后台一直在刷新,而如果等用户画完之后再输出就不会出现这种情况,具体的做法,其实也就是先创建一个位图对象,然后把内容保存在里面,最后把图呈现出来。 GDI+的双缓冲问题
界面
15,979
社区成员
115,896
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章