使用gdi+实时绘制picturebox(画个叉)

private void DrawReticle(System.Drawing.Point pt, int size)//画一个透明的前景图片上画十字
{
Bitmap bmp = new Bitmap(imageWindows[2].Width, imageWindows[2].Height);//用图片大小不要用控件大小
Graphics g = Graphics.FromImage(bmp);
g.Clear(Color.Transparent);
Pen MyPen = new Pen(Color.Red, 1);
System.Drawing.Point pt1 = new System.Drawing.Point(pt.X - size, pt.Y);
System.Drawing.Point pt2 = new System.Drawing.Point(pt.X + size, pt.Y);
System.Drawing.Point pt3 = new System.Drawing.Point(pt.X, pt.Y - size);
System.Drawing.Point pt4 = new System.Drawing.Point(pt.X, pt.Y + size);
//使用DrawLine方法绘制直线
g.DrawLine(MyPen, pt1, pt2);
g.DrawLine(MyPen, pt3, pt4);
g.Dispose();
imageWindows[2].Image = bmp;
}
private void RealTimeGrab()
{
while (true)
{
if (isOpen)
{
System.Drawing.Point pt1 = new System.Drawing.Point(int.Parse(nudXCoord.Text), int.Parse(nudYCoord.Text));
DrawReticle(pt1, int.Parse(nudReticleSize.Text));
}
imageWindows[2].BeginInvoke(new Action(() =>
{
imageWindows[2].BackgroundImage = dst;//给背景图赋值 Bitmap dst
}));

                    }
            }
posted @   你的代码能改变世界吗  阅读(151)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示