C# 开发类似美图秀秀照片绘画功能的示例代码
时间: 2023-08-10 18:01:26 浏览: 133
C#做的类似画图的源代码
4星 · 用户满意度95%
以下是一个简单的示例代码,用于在C#中实现类似美图秀秀照片绘画功能:
```csharp
using System;
using System.Drawing;
using System.Windows.Forms;
namespace PhotoDrawingApp
{
public partial class MainForm : Form
{
private Bitmap image;
private Graphics graphics;
private Pen pen;
public MainForm()
{
InitializeComponent();
// 创建一个Bitmap对象,用作画布
image = new Bitmap(pictureBox.Width, pictureBox.Height);
graphics = Graphics.FromImage(image);
// 设置画笔样式
pen = new Pen(Color.Black, 2);
}
private void pictureBox_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
// 开始绘制
pictureBox.Capture = true;
graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
graphics.DrawLine(pen, e.X, e.Y, e.X + 1, e.Y + 1);
pictureBox.Invalidate();
}
}
private void pictureBox_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
// 继续绘制
graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
graphics.DrawLine(pen, e.X, e.Y, e.X + 1, e.Y + 1);
pictureBox.Invalidate();
}
}
private void pictureBox_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
// 停止绘制
pictureBox.Capture = false;
}
}
private void btnSave_Click(object sender, EventArgs e)
{
// 保存绘制结果
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "JPEG Image|*.jpg|Bitmap Image|*.bmp|PNG Image|*.png";
saveFileDialog.Title = "Save an Image File";
saveFileDialog.ShowDialog();
if (saveFileDialog.FileName != "")
{
image.Save(saveFileDialog.FileName);
}
}
private void btnClear_Click(object sender, EventArgs e)
{
// 清空画布
graphics.Clear(Color.White);
pictureBox.Invalidate();
}
private void pictureBox_Paint(object sender, PaintEventArgs e)
{
// 在PictureBox上绘制图像
e.Graphics.DrawImage(image, Point.Empty);
}
}
}
```
这是一个简单的Windows窗体应用程序,包含一个PictureBox用于显示绘制的图像。当鼠标按下并移动时,会在画布上绘制路径,释放鼠标按钮停止绘制。点击"保存"按钮可将绘制结果保存为图像文件,点击"清空"按钮可清空画布。
请注意,这只是一个简单的示例代码,实际的应用程序可能需要更多功能和优化。你可以根据自己的需求进行修改和扩展。希望对你有所帮助!
阅读全文