| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7119 人关注过本帖, 1 人收藏
标题:教你使用C# 截取屏幕图像,都来做自己的屏幕录像专家
取消只看楼主 加入收藏
dreamsfly
Rank: 2
等 级:论坛游民
帖 子:152
专家分:13
注 册:2007-6-29
收藏(1)
 问题点数:0 回复次数:6 
教你使用C# 截取屏幕图像,都来做自己的屏幕录像专家
//获取屏幕1024*768图像
        [System.Runtime.InteropServices.DllImport("gdi32.dll")]
        public static extern int BitBlt(IntPtr hdcDest, int nXDest, int nYDest, int nWidth, int nHeight, IntPtr hdcSrc, int nXSrc, int nYSrc, UInt32 dwRop);
      //创建桌面句柄
        [System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")]
        public static extern IntPtr CreateDC(string lpszDriver, string lpszDevice, string lpszOutput, int lpInitData);

        [System.Runtime.InteropServices.DllImport("gdi32.dll")]
        public static extern IntPtr CreateCompatibleDC(IntPtr hdc);

        //转换为本地的图像资源
        [System.Runtime.InteropServices.DllImport("gdi32.dll")]
        public static extern IntPtr CreateCompatibleBitmap(IntPtr hdc, int nWidth, int nHeight);

        [System.Runtime.InteropServices.DllImport("gdi32.dll")]
        public static extern IntPtr SelectObject(IntPtr hdc, IntPtr hgdiobj);

        [System.Runtime.InteropServices.DllImport("gdi32.dll")]
        public static extern int DeleteDC(IntPtr hdc);

        //释放用过的设备句柄
        [DllImport("user32.dll")]
        public static extern bool ReleaseDC(
         IntPtr hwnd, IntPtr hdc
         );

        //释放用过的画笔等资源
        [DllImport("gdi32.dll")]
        public static extern bool DeleteObject(
          IntPtr hdc
         );
        


/// <summary>
        /// 截取屏幕图像
        /// </summary>
        /// <param name="Width">宽</param>
        /// <param name="Height">高</param>

        /// <param name="x">x坐标(全屏时候为0)</param>
        /// <param name="y">y坐标(全屏时候为0)</param>

        /// <returns></returns>
        public Bitmap fullphoto(int Width,int Height,int x,int y)
        {
            Bitmap bitmap;
            //try
            //{
                IntPtr hScreenDc = CreateDC("DISPLAY", null, null, 0); // 创建桌面句柄
                IntPtr hMemDc = CreateCompatibleDC(hScreenDc); // 创建与桌面句柄相关连的内存DC
                IntPtr hBitmap = CreateCompatibleBitmap(hScreenDc, Width, Height);   
                IntPtr hOldBitmap = SelectObject(hMemDc, hBitmap);
                BitBlt(hMemDc, x, y, Width, Height, hScreenDc, x, y, (UInt32)0xcc0020);
                IntPtr map = SelectObject(hMemDc, hOldBitmap);
                bitmap = Bitmap.FromHbitmap(map);  
                ReleaseDC(hBitmap, hScreenDc);
                DeleteDC(hScreenDc);//删除用过的对象
                DeleteDC(hMemDc);//删除用过的对象
                DeleteDC(hOldBitmap);
                DeleteObject(hBitmap);
               
              
            //}
            //catch (Exception wx)
            //{
            //    return null;
                //}
                // number= number +1;
                // bitmap.Save("screen" + number + ".bmp");
            
            return bitmap;
        }


屏幕截图大概就是这样的,

bitmap.Save保存一下,看看是不是屏幕的图像,呵呵.
[url=http://www.]www.[/url]来支持一下我的小站
转载请注明,来源[url=http://www.]www.[/url]


搜索更多相关主题的帖子: int 录像 屏幕 图像 专家 
2007-12-05 09:06
dreamsfly
Rank: 2
等 级:论坛游民
帖 子:152
专家分:13
注 册:2007-6-29
收藏
得分:0 
呵呵,那你要先研究了

www. 我的原创下载
2007-12-09 12:39
dreamsfly
Rank: 2
等 级:论坛游民
帖 子:152
专家分:13
注 册:2007-6-29
收藏
得分:0 
秒截取屏幕图片,可以自己社定,组成一个视频文件,我还没有研究,估计需要GDI的API

www. 我的原创下载
2007-12-10 08:56
dreamsfly
Rank: 2
等 级:论坛游民
帖 子:152
专家分:13
注 册:2007-6-29
收藏
得分:0 
c#,按我上面的方法截图就很占资源了,最好有什么方法,弄成压缩的比较好的

www. 我的原创下载
2007-12-11 11:34
dreamsfly
Rank: 2
等 级:论坛游民
帖 子:152
专家分:13
注 册:2007-6-29
收藏
得分:0 
imagelist 大小都应该可以啊,不清楚你的想法,呵呵,谁做过把截图变成视频的东西,发出来学学

www. 我的原创下载
2007-12-12 13:49
dreamsfly
Rank: 2
等 级:论坛游民
帖 子:152
专家分:13
注 册:2007-6-29
收藏
得分:0 
imagelist里面的图片就是不能变大,用个 方法记住地址,重读地址不就可以了,别把希望都放控件上,控件本身就不灵活

www. 我的原创下载
2007-12-13 08:56
dreamsfly
Rank: 2
等 级:论坛游民
帖 子:152
专家分:13
注 册:2007-6-29
收藏
得分:0 
[url]http://bbs.[/url]
我写了一个着方面的应用,放大镜功能,可以来看看

www. 我的原创下载
2007-12-13 21:42
快速回复:教你使用C# 截取屏幕图像,都来做自己的屏幕录像专家
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018875 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved