欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

简单的c#winform画图工具

程序员文章站 2022-06-24 19:43:23
...

1首先创建一个form窗体 然后拖入pictureBox作为画板
2创建两个button按钮 一个为“开始画画 ” 一个“保存”

对于画板的创建 首先 我们得声明一些有关变量

Bitmap myImage;    //位图 用来存储画板的基础
        int PBwidth; //这个是  画板的宽度
        int PBheight;//这个是  画板的高度
        bool beginPain = false;//定义是否画板开启 初始化否
        bool beginMove = false;//定义是否开始移动画画 初始化否
        int currentXpos;//定义的一个变量 用来存储 移动中坐标的x值
        int currentYpos;//定义的一个变量 用来存储 移动中坐标的y值

然后 我们要初始化beginPain和BeginMove在窗体初始化的时候

PBheight = pictureBox1.Height;
PBwidth = pictureBox1.Width;

然后单击按钮button1的效果

 if (button1.Text == "开始画画")
            {
                beginPain = true;
                button1.Text = "结束画画";
                myImage = new Bitmap(PBwidth, PBheight);//创建并初始化位图大小
                Graphics g = Graphics.FromImage(myImage);//将位图作为画板
                g.Clear(Color.White);// 初始化画板为白色
                pictureBox1.Image = myImage;//将初始化的图片赋值给pictureBox
            }
            else
            {
                beginPain = false;
                button1.Text = "开始画画";

            }

这是左键单击pictureBox的效果

  if (beginPain == true)
            {
                if (e.Button == MouseButtons.Left)//获取单击是否为鼠标左键
                {
                    beginMove = true;  
                    currentXpos = e.X; //获取单击的位置
                    currentYpos = e.Y;
                }
            }

这是移动鼠标在pictureBox的效果

 if (beginMove)  //判断是否移动
            {
                Graphics g = Graphics.FromImage(myImage); 
                Pen myPen = new Pen(Color.Red, 2);//画笔的初始
                g.DrawLine(myPen, currentXpos, currentYpos, e.X, e.Y);//画笔在画板上的操作
                pictureBox1.Image = myImage;//跟新图像
                g.Dispose();//释放画板资源
                currentYpos = e.Y;//跟新坐标
                currentXpos = e.X;
            }

这是松开鼠标左键的效果

if (e.Button == MouseButtons.Left)  //这样 画画结束
            {
                beginMove = false;
                //currentXpos = 0;
                //currentYpos = 0;
            }

这是保存按钮的操作

if (beginPain == true)   //判断是否在画画
            {
                SaveFileDialog sfd = new SaveFileDialog();  
                //sfd.InitialDirectory  这个属性可以初始化保存路径 但是没用这里
                if (sfd.ShowDialog() == DialogResult.OK)//ShowDialog()的话  如果结束掉该窗口  其他窗口无法操作
                {
                    myImage.Save(sfd.FileName + ".Jpeg", ImageFormat.Jpeg);//图像保存 格式是Jpeg   
                }
            }
            else
            {
                MessageBox.Show("请重新绘制图片");
                return;
            }