如图,
我在pictureBox中用如下方法绘制了"csdn"的笔迹,
如何将这些笔迹保存,如何删除?
Point[] _p = new Point[0];
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
Array.Resize(ref _p, _p.Length + 1);
_p[_p.GetUpperBound(0)] = new Point(e.X, e.Y);
if (e.Button == MouseButtons.Left && _p.Length > 1)
{
Graphics g = pictureBox1.CreateGraphics();
g.DrawLine(Pens.Red, _p[_p.GetUpperBound(0)], _p[_p.GetUpperBound(0) - 1]);
}
}C#手写笔迹
擦除:重新new一个bitmap
保存:bitmap.save
保存的话,你把MouseMove里的所有经过的点都保存在Point[] pt里,需要时再根据这些点重绘一下
1.先建一Bitmap,将确定的不需要刷除的画在这里,
2.再将这个bitmap画到你的窗体,再将线画到窗体,
3.如果要release重画bitmap,不画你的线。
不是把图片作为background image放在picturebox里边,然后在picturebox的mouse move事件中绘图吗?
鼠标移动时记录笔迹
List<Point> list=new List<Point>();
list.Add(pos);窗体重画时重绘,OnPaint方法
foreach(Point pos in list)
{
e.Graphics.DrawLine(...,...);
}方法二:
直接画在图片上Graphics g=Graphics.FromImage(bmp);g.DrawLine(...,...)
窗体重画时重绘图片,OnPaint方法 e.Graphics.DrawImage(bmp,...)