近日做截图程序,按下热键后截取屏幕,然后将截取的图片调暗,再显示.问题是遍历bitmap处理每个像素点好慢,按下热键到显示图片要3,4秒时间,用BitmapData也不见成效...求解决方法.

解决方案 »

  1.   

    http://topic.csdn.net/u/20090420/00/4042e404-e802-45f7-8b25-c7fbc5a81c76.html
      

  2.   

    你截取的图像有多大啊,BitmapData这个戳戳有余了,如果你用指针,那么速度可以在提高一个数量级,除非你的程序有问题!要不然不会出现你说的情况!
      

  3.   


    public Bitmap GetScreen() {
                Bitmap bmp = new Bitmap(Screen.PrimaryScreen.Bounds.Width,
                    Screen.PrimaryScreen.Bounds.Height);
                using (Graphics g = Graphics.FromImage(bmp)) {
                    g.CopyFromScreen(0, 0, 0, 0, bmp.Size);
                    SolidBrush sb = new SolidBrush(Color.FormArgb(125,0,0,0));
                    g.FillRectangle(sb,0,0,bmp.Width,bmp.Height);
                    sb.Dispose();
                }
                return bmp;
            }返回的图像上 就是 变暗了的  
    直接打的代码 应该没有问题
      

  4.   

    http://download.csdn.net/detail/crystal_lz/4247506
    这个是我以前做的一个截图程序  虽然 现在看来代码写的不咋滴  但是截图还是可以的
    http://blog.csdn.net/crystal_lz/article/details/7327268这个是效果图
    可以自动捕捉窗体区域
      

  5.   

    我之前也用的copyfromscreen方法,现在改用模拟printscreen