图像处理如何加速??

byrrj 2005-05-20 09:43:55
制作控件时要给e.Graphic绘制图像。我的做法是e.Graphic.DrawImage(image,0,0)
但我觉得这样速度太慢了。有什么好的加速方法吗。
能使用在C#能调用的别的语言写的方法也行。谢谢!
...全文
193 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
mba9001 2005-05-28
  • 打赏
  • 举报
回复
up
syeerzy 2005-05-28
  • 打赏
  • 举报
回复
双缓冲
caiyusheng 2005-05-28
  • 打赏
  • 举报
回复
为了更好的交流,请到http://www.dj9394.com/it/注册一个,上面通知好几个.net 学习群共同交流了
byrrj 2005-05-28
  • 打赏
  • 举报
回复
我用BitBlt进行图像复制,
BitBlt ( dc4 , 0 , 0 , this.Width , this.Height , dc2 , 0 , 0 , 13369376) ;
为什么窗体只显示黑色,而不是显示出图像来呢?
但,反过来
BitBlt ( dc2 , 0 , 0 , this.Width , this.Height , dc4 , 0 , 0 , 13369376) ;
则能把窗体复制到图像中。为什么会这样???

Bitmap MyImage = (Bitmap)Bitmap.FromFile("D:\\Mybmp.bmp");
Graphics g2 = Graphics.FromImage ( MyImage ) ;
//获得屏幕的句柄
IntPtr dc4 = GetDC(this.Handle);//窗体的Handle
//获得位图的句柄
IntPtr dc2 = g2.GetHdc ( ) ;
//拷贝位图
BitBlt ( dc4 , 0 , 0 , this.Width , this.Height , dc2 , 0 , 0 , 13369376) ;
g2.ReleaseHdc ( dc2 ) ;
ReleaseDC(this.Handle,dc4);
速马 2005-05-25
  • 打赏
  • 举报
回复
GDI要比GDI+要快不少
DirectDraw比GDI又要快一点
不过DiretDraw和GDI要求你用C/C++编程

一般启用双缓冲后就没有这种问题了,用不着想得那么麻烦
alexxzr 2005-05-25
  • 打赏
  • 举报
回复
不懂!蹲着听....
wh8254 2005-05-25
  • 打赏
  • 举报
回复
:)
diaoerlangdang 2005-05-25
  • 打赏
  • 举报
回复
mark
byrrj 2005-05-24
  • 打赏
  • 举报
回复
请高手继续提供意见
3feng 2005-05-24
  • 打赏
  • 举报
回复
不好意思,没看清楚,只大概看了个题目。上面的话作废。
3feng 2005-05-24
  • 打赏
  • 举报
回复
呵呵。directx到不错,而且,现在机器一般都安装了的,可以试试!
byrrj 2005-05-20
  • 打赏
  • 举报
回复
还有没有高手帮助呀
psn 2005-05-20
  • 打赏
  • 举报
回复
windows api不一定快,openGL native interop方式在.net下大概慢了5倍,marshal的原因吧。
Graphics class 下的一些属性
CompositingMode
CompositingQuality
如果多个图形有重叠,试试部分渲染。
meixiaofeng 2005-05-20
  • 打赏
  • 举报
回复
调用windows api
xuyinjiao 2005-05-20
  • 打赏
  • 举报
回复
用双缓冲区
koenemy 2005-05-20
  • 打赏
  • 举报
回复
mark

110,537

社区成员

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

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

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