GDI+的问题! 是这样的,我先画了一个画布,保存为一个。bmp图片(绿色),然后每次刷新时候,我就调用这个底层图片,然后再上面画别的东西,当然颜色不一样!这样可以减少冗余数据的访问。现在有一个问题,当我想获取鼠标点击的颜色的时候,即使它点的是我后画上去的矩形(紫色),但是取得的数据还是底层画布颜色的RGB值(绿色的RGB),请问哪里有问题,怎样解决?谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //这个是定义,private System.Drawing.Bitmap bmp = new Bitmap(697, 4000);//对其进行绘画之后,把这个底层保存到C盘下了!bmp.Save("C:/1.bmp", System.Drawing.Imaging.ImageFormat.Bmp);//timer运行以后,便开始调用: private void timer1_Tick(object sender, EventArgs e) { pictureBox1.Image = Image.FromFile("C:/1.bmp"); using (Graphics g1 = Graphics.FromImage(pictureBox1.Image)) { drawcar(g1); } pictureBox1.Refresh(); }//然后在drawcar方法里,在1.bmp上继续画东西.//新画上去的颜色跟原来的不一样.//当鼠标抬起的时候,我就取得到的颜色private void pictureBox1_MouseUp(object sender, MouseEventArgs e) { Color myColor = myBitmap.GetPixel(MousePosition.X, MousePosition.Y);}//可是这个mycolor的颜色,始终取到的都是底层的颜色,就是1.bmp的颜色.即使我已经画上去了新的!盼回复,谢谢!不知道我说明白了没有!!! 你的 myBitmap是怎么来的?这样试试。private void pictureBox1_MouseUp(object sender, MouseEventArgs e) {Color myColor = ((Bitmap)this.pictureBox1.Image).GetPixel(e.X,e.Y); // } 四周半透明阴影边框的窗体要怎么做? 关于Linq的一些疑问 C# 一些总结,期待优秀的你的补充..!不惧蔑视 *_*! 将TXT文件拖入WebBrowser后的事件 reporting service 与水晶报表有何区别??? 在本地运行远程程序 得到的DataReader怎样知道它的行数? 请教,如何安装frontpage服务器扩展? 极度郁闷!散分! C#中 pictruebox显示两幅图片的叠加 c# 类似acdsee的第三方控件有吗? 自定义DatetimePicker的问题
//这个是定义,
private System.Drawing.Bitmap bmp = new Bitmap(697, 4000);
//对其进行绘画之后,把这个底层保存到C盘下了!
bmp.Save("C:/1.bmp", System.Drawing.Imaging.ImageFormat.Bmp);//timer运行以后,便开始调用:
private void timer1_Tick(object sender, EventArgs e)
{ pictureBox1.Image = Image.FromFile("C:/1.bmp");
using (Graphics g1 = Graphics.FromImage(pictureBox1.Image))
{
drawcar(g1);
}
pictureBox1.Refresh(); }
//然后在drawcar方法里,在1.bmp上继续画东西.
//新画上去的颜色跟原来的不一样.
//当鼠标抬起的时候,我就取得到的颜色
private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
{
Color myColor = myBitmap.GetPixel(MousePosition.X, MousePosition.Y);
}
//可是这个mycolor的颜色,始终取到的都是底层的颜色,就是1.bmp的颜色.即使我已经画上去了新的!
盼回复,谢谢!不知道我说明白了没有!!!
这样试试。
private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
{Color myColor = ((Bitmap)this.pictureBox1.Image).GetPixel(e.X,e.Y); //
}