一、前言
在本篇攻略中,我们将详细讲解如何使用C#编写一个简易的Windows截屏增强工具。该工具可以实现采集屏幕截图、标注图片、保存图片等功能,为用户提供更加便捷的截屏体验。
二、环境准备
在开始编写代码前,我们需要准备如下环境:
- Windows操作系统
- Visual Studio 2019开发环境
- .NET Framework 4.7.2运行库
三、代码实现
- 创建窗体
在Visual Studio中新建一个Windows窗体工程,并在窗体中添加一个PictureBox和一个Button控件,如下图所示:
private System.Windows.Forms.PictureBox pictureBox1;
private System.Windows.Forms.Button button1;
private void InitializeComponent()
{
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.button1 = new System.Windows.Forms.Button();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
this.SuspendLayout();
//
// pictureBox1
//
this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.pictureBox1.Location = new System.Drawing.Point(12, 12);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(500, 300);
this.pictureBox1.TabIndex = 0;
this.pictureBox1.TabStop = false;
//
// button1
//
this.button1.Location = new System.Drawing.Point(12, 318);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(75, 23);
this.button1.TabIndex = 1;
this.button1.Text = "截屏";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(528, 353);
this.Controls.Add(this.button1);
this.Controls.Add(this.pictureBox1);
this.Name = "Form1";
this.Text = "截屏增强工具";
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
this.ResumeLayout(false);
}
- 实现截屏功能
在button1的Click事件中,我们可以实现截屏功能。
private void button1_Click(object sender, EventArgs e)
{
// 隐藏窗口
this.Hide();
// 截屏
Bitmap bitmap = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
Graphics graphics = Graphics.FromImage(bitmap);
graphics.CopyFromScreen(0, 0, 0, 0, Screen.PrimaryScreen.Bounds.Size);
// 显示截屏图片
pictureBox1.Image = bitmap;
// 显示窗口
this.Show();
}
- 实现图片标注功能
在pictureBox1的MouseMove事件中,我们可以实现图片标注功能。我们在PictureBox中实现一个画笔,并通过鼠标在PictureBox中的移动,来实现画线、画点等操作。
private Point p1, p2;
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
if (p1.IsEmpty)
p1 = e.Location;
else
{
p2 = e.Location;
using (Graphics g = Graphics.FromImage(pictureBox1.Image))
{
g.DrawLine(Pens.Red, p1, p2);
}
pictureBox1.Invalidate();
p1 = p2;
}
}
else
p1 = Point.Empty;
}
- 实现图片保存功能
在button1的Click事件中,我们可以实现图片保存功能。首先判断pictureBox1.Image是否为null,如果是,则提示用户进行截屏操作;如果不是,则弹出SaveFileDialog,让用户选择保存文件的位置和文件名。用户选择保存后,将pictureBox1.Image保存至指定位置。
private void button1_Click(object sender, EventArgs e)
{
if (pictureBox1.Image == null)
{
MessageBox.Show("请先进行截屏操作");
return;
}
SaveFileDialog dialog = new SaveFileDialog();
dialog.Filter = "图片文件|*.png";
if (dialog.ShowDialog() == DialogResult.OK)
{
pictureBox1.Image.Save(dialog.FileName);
MessageBox.Show("保存成功");
}
}
四、示例演示
- 实现截屏功能
点击“截屏”按钮,可以进行截屏操作。截屏后,截屏图片会显示在窗体中的PictureBox中。
- 实现图片标注功能
在截屏图片中,移动鼠标并按下鼠标左键不放,可以在截屏图片上画线。如下图所示:
- 实现保存功能
点击“保存”按钮,弹出保存对话框,用户选择保存的文件位置和文件名后,点击“保存”按钮即可将截屏图片保存至指定位置。如下图所示:
五、总结
通过以上演示,我们完成了一个简易的Windows截屏增强工具。在实现过程中,我们学习了如何采集屏幕截图、标注图片、保存图片等功能。这对于提高工作效率和便捷使用Windows操作系统,具有重要的意义。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:通过C#编写一个简易的Windows截屏增强工具 - Python技术站