青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

cc

  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
  38 隨筆 :: 14 文章 :: 21 評論 :: 0 Trackbacks
最近在嘗試為軟件增加截取屏幕的功能,為此學習了System.Drawing命名空間的Graphics、Image、Bitmap等GDI+類,這些類都很方便使用。但是它們大多都是對原有GDI API的封裝,也增加了一些新的東西;不過封裝得并不徹底,有些功能還是需要調用GDI API才能實現。我武斷的認為Image、Bitmap、Metafile跟HBITMAP對應,Graphics跟HDC對應。

    在GDI+中,我們可以很方便的用Graphics.FromImage方法來操作Image中的內容,并將其保存回圖片文件。那么,我們怎么才能保存Graphics到圖片文件呢?創建一個Bitmap對象,復制Graphics g1的內容到Bitmap的Graphics g2,然后保存Bitmap對象到文件。復制過程我們必須通過PINVOKE調用BitBlt函數來實現。下面是該函數的聲明:

[DllImport("gdi32.dll", CharSet=CharSet.Auto, SetLastError=true, ExactSpelling=true)]
public static extern int BitBlt(HandleRef hDC, int x, int y, int nWidth, int nHeight, HandleRef hSrcDC, int xSrc, int ySrc, int dwRop);
參數中的各種DC可以用Graphics.GetHdc得到;最后一個參數光柵操作碼很多,截取屏幕用的SRCCOPY值是0xcc0020,完整的光柵操作碼可以查看MSDN的“Ternary Raster Operations”部分。

示例代碼如下:

//這里假設要保存一個窗體的內容

int width=800;     //獲取寬度

int height=600;     //獲取高度

const int SRCCOPY=0xcc0020;     //復制圖塊的光柵操作碼

Bitmap bmSave=new Bitmap(width,height);     //用于保存圖片的位圖對象

Graphics gSave=Graphics.FromImage(bmSave);     //創建該位圖的Graphics對象

HandleRef hDcSave=new HandleRef(null,gSave.GetHdc());     //得到句柄

Graphics gSrc=formMain.CreateGraphics();     //創建窗體的Graphics對象

HandleRef hDcSrc=new HandleRef(null,gSrc.GetHdc());

BitBlt(hDcSave,0,0,width,height,hDcSrc,0,0,SRCCOPY);

gSrc.ReleaseHdc();

gSave.ReleaseHdc();

bmSave.Save(@"C:\test.bmp");

gSrc.Dispose();

gSave.Dispose();

bmSave.Dispose();

 

 關于Graphics.CopyFromScreen方法

     該方法在內部其實也使用BitBlt來進行圖塊復制,但是它只是固定的復制屏幕的內容,我們不能指定復制的源。

如果您需要截取屏幕的內容,可以使用以下代碼:

int screenWidth=System.Windows.Forms.SystemInformation.VirtualScreen.Width;     //屏幕寬度

int screenHeight=System.Windows.Forms.SystemInformation.VirtualScreen.Height;     //屏幕高度

Bitmap bmSave=new Bitmap(screenWidth,screenHeight);

Graphics g=Graphics.FromImage(bmSave);

g.CopyFromScreen(0,0,0,0,new Size(screenWidth,screenHeight),CopyPixelOperation.SourceCopy);

bmSave.Save(@"C:\test.bmp");

g.Dispose();

bmSave.Dispose();

 

如果需要復制頂層窗體的可見部分,也可以使用Graphics.CopyFromScreen,但是需要用PointToScreen方法先得到屏幕坐標。

如果需要復制任意的窗體或者控件,先用Control.Handle得到控件句柄,然后再用GetDC()函數得到HDC,再用BitBlt進行圖塊復制。

posted on 2009-11-30 17:44 醒目西西 閱讀(2219) 評論(0)  編輯 收藏 引用
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美人与性动交α欧美精品济南到 | 久久激情网站| 亚洲手机在线| 亚洲一级影院| 亚洲欧美激情一区| 久久精品免费观看| 欧美jjzz| 在线综合亚洲欧美在线视频| 亚洲一区二区三区高清| 欧美亚洲在线视频| 久久综合久久88| 亚洲精品国产精品国自产在线| 久久综合五月| 亚洲国产二区| 亚洲你懂的在线视频| 久久成人精品电影| 欧美日本亚洲| 国内精品视频在线播放| 日韩一区二区久久| 久久九九热免费视频| 亚洲福利视频二区| 亚洲欧美乱综合| 欧美 日韩 国产一区二区在线视频 | 欧美一级电影久久| 欧美激情视频在线播放| 国产精品99久久久久久久女警| 久久激情五月婷婷| 欧美性猛交xxxx乱大交退制版| 国产亚洲精久久久久久| 一区二区三区四区五区精品视频| 欧美一二三区在线观看| 亚洲国内高清视频| 欧美在线亚洲一区| 国产精品久久久久一区二区| 亚洲激情电影在线| 美女图片一区二区| 欧美一区二区在线免费播放| 欧美日韩欧美一区二区| 亚洲高清自拍| 美女爽到呻吟久久久久| 久久精品二区| 韩国女主播一区二区三区| 欧美一区二区三区成人| 国产精品99久久久久久人| 欧美日韩国产一区精品一区 | 亚洲精品偷拍| 亚洲国产欧美日韩| 美日韩精品视频| 亚洲高清资源综合久久精品| 久久一区二区三区超碰国产精品| 亚洲香蕉在线观看| 国产精品久久久久aaaa九色| 一区二区三区四区精品| 亚洲毛片在线观看| 欧美日韩综合不卡| 亚洲在线播放电影| 一区二区国产精品| 欧美系列精品| 亚洲欧美美女| 亚洲素人一区二区| 国产精品午夜久久| 久久av一区| 久久国产精品久久久久久| 国产日韩欧美夫妻视频在线观看| 伊人久久亚洲热| 亚洲国产一区在线| 夜夜嗨av一区二区三区四季av| 久久尤物电影视频在线观看| 欧美一区二区三区在线视频| 国产一区二区三区精品久久久| 午夜伦欧美伦电影理论片| 亚洲午夜一区| 韩国一区二区三区在线观看| 巨胸喷奶水www久久久免费动漫| 久久国产手机看片| 亚洲人成在线观看一区二区| 亚洲久色影视| 国产欧美日韩不卡| 久久亚洲美女| 欧美好吊妞视频| 一区二区三区三区在线| 亚洲在线免费视频| 国内伊人久久久久久网站视频| 久久综合国产精品台湾中文娱乐网| 久久久91精品国产一区二区精品| 91久久亚洲| 亚洲男人的天堂在线| 136国产福利精品导航| 亚洲精品久久视频| 国产午夜精品在线| 亚洲激情一区二区三区| 国产麻豆精品视频| 欧美黄色成人网| 国产精品入口麻豆原神| 欧美11—12娇小xxxx| 欧美日韩中文字幕在线视频| 久久久国产亚洲精品| 欧美激情在线有限公司| 久久久91精品国产| 欧美黄免费看| 欧美在线综合| 欧美日韩亚洲一区| 欧美sm极限捆绑bd| 国产欧美日韩精品丝袜高跟鞋| 亚洲黄一区二区| 精品成人国产| 在线中文字幕一区| 亚洲免费电影在线观看| 久久国产精品免费一区| 亚洲一区二区成人在线观看| 免费观看成人www动漫视频| 欧美中文字幕| 欧美性大战久久久久| 亚洲精品亚洲人成人网| 在线免费高清一区二区三区| 午夜精品一区二区三区电影天堂| 亚洲深爱激情| 欧美激情女人20p| 欧美激情第二页| 国产主播一区| 午夜在线播放视频欧美| 亚洲性线免费观看视频成熟| 欧美成人在线免费视频| 久热精品视频在线观看一区| 国产一区二区毛片| 亚洲欧洲av一区二区| 亚洲女人天堂av| 亚洲国产美国国产综合一区二区| 亚洲免费一在线| 欧美xxx成人| 欧美国产亚洲精品久久久8v| 黄色一区二区三区| 久久成人亚洲| 久久九九久精品国产免费直播| 国产精品网站视频| 亚洲欧美日韩国产另类专区| 午夜精品理论片| 国产精品视频一二三| 亚洲图片激情小说| 亚洲欧美日韩国产成人| 国产精品免费看片| 亚洲一区二区三区午夜| 久久xxxx| 亚洲第一在线| 欧美日韩久久不卡| 亚洲一区二区三区精品在线观看| 亚洲综合好骚| 国产日本欧美一区二区三区| 久久久www成人免费无遮挡大片| 久久综合九色九九| 亚洲激情一区二区三区| 欧美另类极品videosbest最新版本| 亚洲精品一区在线| 欧美一区不卡| 亚洲二区在线观看| 欧美日韩精品免费观看视频完整 | 一区二区激情视频| 欧美伊人久久久久久午夜久久久久 | 老司机aⅴ在线精品导航| 亚洲激情一区| 性欧美xxxx视频在线观看| 有坂深雪在线一区| 欧美日韩专区在线| 久久精品九九| 亚洲精品中文字幕有码专区| 性做久久久久久免费观看欧美| 激情欧美一区| 欧美日韩一区二区在线观看| 欧美一区二区免费| 亚洲狠狠婷婷| 久久精品二区三区| aa日韩免费精品视频一| 国产一区二区三区四区hd| 欧美大片免费看| 欧美一区在线直播| 99亚洲伊人久久精品影院红桃| 久久精品免费电影| 夜夜嗨av色一区二区不卡| 国产原创一区二区| 欧美四级伦理在线| 欧美jizzhd精品欧美巨大免费| 亚洲综合不卡| 亚洲人成欧美中文字幕| 久久久久这里只有精品| 亚洲图片你懂的| 亚洲欧洲精品一区二区| 国产偷自视频区视频一区二区| 欧美日韩国产成人高清视频| 久久精品亚洲| 午夜精品婷婷| 亚洲影院色在线观看免费| 亚洲国产日韩精品| 久久这里只有| 久久精品在线播放| 国产午夜精品久久久| 欧美午夜宅男影院| 欧美激情视频在线播放| 久久影视精品| 久久激情五月婷婷| 欧美伊人久久大香线蕉综合69|