b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

bitblt 拉伸_bitblt_bitblt 性能

电脑杂谈  发布时间:2017-02-12 05:59:55  来源:网络整理

我也并不觉得我写的代码你比你给出来的连接里面的效果弱

开始我以为代码是你写的情感不是你的

还是那句话思路都不清晰的代码你给我扯效率?。。bitblt。而且那代码中什么东西都只有创建没有删除

我不知道你统计那个帧有什么意义Graphics瞒住普通绘图绰绰有余不要把自己代码纯在的问题归咎与XXX语言不行XXX裤不行先看看自己是怎么写的代码在说吧

而且就算是要使用DC代码也不是你那样写

也比你上面的强

这类代码没准不比你写的少。。bitblt。几乎每个工程里面都有这类代码

publicstaticImageGetScreen(boolbCaptureCursor,boolbFromClipboard,Rectanglerect,outPointptMouseOfRect){

ptMouseOfRect=Point.Empty;

if(rect==Rectangle.Empty)returnnull;

PointptMouse=System.Windows.Forms.Control.MousePosition;

ptMouseOfRect=(Point)((Size)ptMouse-(Size)rect.Location);

IntPtrhDc=Win32.GetDC(IntPtr.Zero);//获取桌面dc

IntPtrhMemDc=Win32.CreateCompatibleDC(hDc);//创建与桌面兼容的内存dc

IntPtrhBmp=Win32.CreateCompatibleBitmap(hDc,rect.Width,rect.Height);//创建与桌面兼容的位图

IntPtrhOldBmp=Win32.SelectObject(hMemDc,hBmp);//将位图选入dc中

Win32.BitBlt(hMemDc,0,0,rect.Width,rect.Height,hDc,rect.X,rect.Y,Win32.SRCCOPY);//将桌面数据拷贝到内存dc里面去

using(Graphicsg=Graphics.FromHdc(hMemDc)){//之后的所有绘图都在内存dc中进行

if(bCaptureCursor&&rect.Contains(ptMouse)){//如果绘制鼠标的话

Win32.PCURSORINFOpci;

pci.cbSize=System.Runtime.InteropServices.Marshal.SizeOf(typeof(Win32.PCURSORINFO));

Win32.GetCursorInfo(outpci);

if(pci.hCursor!=IntPtr.Zero){

varcur=newSystem.Windows.Forms.Cursor(pci.hCursor);

varrect_cur=newRectangle((Point)((Size)ptMouse-(Size)rect.Location-(Size)cur.HotSpot),cur.Size);

cur.Draw(g,rect_cur);//如果采用的是Graphic.FromImage则绘制鼠标不会有混合模式比如光标反色之类的但是DC就可以

}

}

if(bFromClipboard){//如果需要从剪切板获取图像的话

Imageimg=System.Windows.Forms.Clipboard.GetImage();

if(img!=null){

using(SolidBrushsb=newSolidBrush(Color.FromArgb(125,0,0,0)))


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-31930-1.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...