前言
顾名思义,此篇文章就是实现针对屏幕上的局部位置进行放大显示的功能,一般情况下在屏幕取色器、商品图片详情展示等工具上使用的比较多。
开发环境:.NET Framework版本:4.8
开发工具:Visual Studio 2022
实现步骤
首先在窗体上放一个PictureBox控件和Timer控件
在PictureBox控件中绘制两条交错的线,用来针对坐标定位
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
//绘制横线
e.Graphics.DrawLine(cursorPen, 0, pictureBox1.Height / 2, pictureBox1.Width, pictureBox1.Height / 2);
//绘制竖线
e.Graphics.DrawLine(cursorPen, pictureBox1.Width / 2, 0, pictureBox1.Width / 2, pictureBox1.Height);
}
在Timer的触发事件(触发频率为100毫秒)中,实现对屏幕图像的捕捉以及鼠标的定位,并在PictureBox中放大显示
private void timer1_Tick(object sender, EventArgs e)
{
//放大倍数
int n = 4;
//定义图片为控件大小的1/N,由于SizeMode属性,所以显示会被放大N倍
Bitmap bitmap = new Bitmap(pictureBox1.Width / n, pictureBox1.Height / n);
using (Graphics g = Graphics.FromImage(bitmap))
{
//绘制从当前鼠标位置减去图片一半的屏幕大小到bitmap中
g.CopyFromScreen(new Point(Cursor.Position.X - bitmap.Width / 2, Cursor.Position.Y - bitmap.Height / 2), new Point(0, 0), bitmap.Size);
}
pictureBox1.Image = bitmap;
}
4. 代码实现比较简单,以下显示效果可以在程序外使用,只是为了方便展示所以坐标定位在了程序内。
实现效果
-
技术群:添加小编微信并备注进群
小编微信:mm1552923
公众号:dotNet编程大全