C# 获取PictureBox中像素颜色

用PictureBox的Graphics对象在PictureBox中进行绘图,然后想取出PictureBox中某一点的像素颜色,请问该如何取?我的代码如下,
Bitmap bmp = new Bitmap(pictureBox1.Width, pictureBox1.Height);
//将pictureBox1的图像绘制到位图里
pictureBox1.DrawToBitmap(bmp, new Rectangle(0, 0, pictureBox1.Width, pictureBox1.Height));
Color cc = bmp.GetPixel(15,15);
为什么无论修改GetPixel中的参数,结果总是(255,240,240,240)这个颜色貌似是控件的默认背景色吧?但是我显然是用的是红色的画刷重绘了PictureBox1了

第1个回答  2011-04-27
Color c=new Color(); //颜色对象
Bitmap bitmap=new Bitmap(this.backgroundImage);
int x=Cursor.Position.x;
int y=Cursor.Position.y; //坐标
c=bitmap.Getpixel(x,y); //获取坐标点的颜色
this.text=string.Format("{0},{1},{2}",c.R,c.G,c.B);
bitmap.Dispose; //释放追问

Bitmap bmp = new Bitmap(pictureBox1.BackgroundImage);
这样使用之后bmp还是null?为什么呢

追答

那么说你的picturebos。backgroundimage 有问题

追问

我的图形是使用的GDI+绘制的,不是加载一个外部的图形文件~~
你也可以看看这个问题,是一样的:
http://hi.baidu.com/cdinten/blog/item/d7e98d913b277e9aa877a442.html

第2个回答  2011-04-27
学习了。~
第3个回答  2011-05-08
这个问题要用Onpaint来解决,你自己翻手册吧,C#入门经典中有的本回答被提问者采纳
第4个回答  2011-04-27
Color c=new Color(); //颜色对象
Bitmap bitmap=new Bitmap(this.backgroundImage);
int x=Cursor.Position.x;
int y=Cursor.Position.y; //坐标
c=bitmap.Getpixel(x,y); //获取坐标点的颜色
this.text=string.Format("{0},{1},{2}",c.R,c.G,c.B);
bitmap.Dispose; //释放追问

Bitmap bmp = new Bitmap(pictureBox1.BackgroundImage);
这样使用之后bmp还是null?为什么呢

追答

那么说你的picturebos。backgroundimage 有问题

追问

我的图形是使用的GDI+绘制的,不是加载一个外部的图形文件~~
你也可以看看这个问题,是一样的:
http://hi.baidu.com/cdinten/blog/item/d7e98d913b277e9aa877a442.html

第5个回答  2011-04-27
学习了。~
第6个回答  2011-05-08
这个问题要用Onpaint来解决,你自己翻手册吧,C#入门经典中有的本回答被提问者采纳
相似回答
大家正在搜