C# 如何使用GetPixel函数,在Panel上面获取背景色

zjzhy0311 2010-02-10 08:57:42
我在Panel上面用GDI填充了一个矩形,我想用GetPixel获取这个矩形范围内的一个点的颜色应该怎么写?
...全文
1084 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
Graphics g=picbox.CreateGraphics()//获取控件的绘图表面

IntPtr p=g.GetHdc()//获取绘图设备上下文句柄

COLORREF GetPixel(HDC hdc, int nXPos, int nYPos)//Win API,获取指定点颜色


COLORREF是一个四字节整数,四个字节分别表示R G B A,用BitConvert类可将其转换成字节数组

这种方法的好处是不用产生位图对象,而且可以得到任意控件表面的某点像素
卧_槽 2010-02-11
  • 打赏
  • 举报
回复
诶,我没事做了个类似好色鬼的东东,你试试?
阿双2009 2010-02-11
  • 打赏
  • 举报
回复
引用 4 楼 luols 的回复:
Bitmap bmp = new Bitmap(picture.Image);


这里的picture.Image改为pictureBox.Image,topleft为矩形左上顶点,特此更正!!
阿双2009 2010-02-11
  • 打赏
  • 举报
回复
为什么不用pictureBox呢,pictureBox可以直接获取pictureBox.Image
Bitmap bmp = new Bitmap(picture.Image);
Color testColor = bmp.GetPixel(topleft.X + 1, topleft.Y + 1);
//其中topleft为矩形左上顶点坐标

这样矩形的填充颜色信息尽在testColor里。。
CHENFEIYANG2009 2010-02-10
  • 打赏
  • 举报
回复
Bitmap.GetPixel(i,j) 参见msdn
http://msdn.microsoft.com/zh-cn/library/system.drawing.bitmap.getpixel(VS.80).aspx
Baesky 2010-02-10
  • 打赏
  • 举报
回复
引用楼主 zjzhy0311 的回复:
我在Panel上面用GDI填充了一个矩形,我想用GetPixel获取这个矩形范围内的一个点的颜色应该怎么写?

你可以先画到image对象上,然后把这个image对象画出来,同时也方便使用getpixel函数取范围内某点颜色
lzsh0622 2010-02-10
  • 打赏
  • 举报
回复
给你个可行方法,楼主如果找到更好的,请贴上来。

(1)从网上查:C#屏幕截图。  这样可取得控件的Image。
   

(2)有Image位图,用下面代码,取点的Color。
Bitmap map = new Bitmap(img);
Color colo = map.GetPixel(p.X, p.Y);

111,088

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧