简单的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;
}