我在Panel上面用GDI填充了一个矩形,我想用GetPixel获取这个矩形范围内的一个点的颜色应该怎么写?

解决方案 »

  1.   

    给你个可行方法,楼主如果找到更好的,请贴上来。(1)从网上查:C#屏幕截图。  这样可取得控件的Image。
       (2)有Image位图,用下面代码,取点的Color。
          Bitmap map = new Bitmap(img);
         Color colo = map.GetPixel(p.X, p.Y);
      

  2.   

    你可以先画到image对象上,然后把这个image对象画出来,同时也方便使用getpixel函数取范围内某点颜色
      

  3.   

    Bitmap.GetPixel(i,j) 参见msdn
    http://msdn.microsoft.com/zh-cn/library/system.drawing.bitmap.getpixel(VS.80).aspx
      

  4.   

    为什么不用pictureBox呢,pictureBox可以直接获取pictureBox.Image
    Bitmap bmp = new Bitmap(picture.Image);
    Color testColor = bmp.GetPixel(topleft.X + 1, topleft.Y + 1);
    //其中topleft为矩形左上顶点坐标这样矩形的填充颜色信息尽在testColor里。。
      

  5.   


    这里的picture.Image改为pictureBox.Image,topleft为矩形左上顶点,特此更正!!
      

  6.   

    Graphics g=picbox.CreateGraphics()//获取控件的绘图表面IntPtr p=g.GetHdc()//获取绘图设备上下文句柄COLORREF GetPixel(HDC hdc, int nXPos, int nYPos)//Win API,获取指定点颜色
    COLORREF是一个四字节整数,四个字节分别表示R G B A,用BitConvert类可将其转换成字节数组这种方法的好处是不用产生位图对象,而且可以得到任意控件表面的某点像素