一种基于重载的高效c#上图片添加文字图形图片的方法

时间:2021-06-19 17:02:01

在做图片监控显示的时候,需要在图片上添加文字,如果用graphics类绘制图片上的字体,实现图像上添加自定义标记,这种方法经验证是可行的,并且在visual c#2005 编程技巧大全上有提到,但是,这种方法处理图片的速度超级慢。一面介绍一种一种基于重载的高效c#上图片添加文字图形图片的方法。

using System;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Windows.Forms; namespace show
{
/// <summary>
/// Summary description for TransparentLabel2.
/// </summary>
public class PicBOX : System.Windows.Forms.PictureBox
{
//Fields
private Point _Location = new Point(0, 0);//字体位置
public string wrw;
public bool isOld; //Properties
public Point TextLocation
{
get
{
return this._Location;
}
set
{
this._Location = value;
}
}
[Browsable(true)]
new public string Text
{
get { return base.Text; }
set { base.Text = value; }
}
[Browsable(true)]
new public Font Font
{
get { return base.Font; }
set { base.Font = value; }
}
//
public PicBOX()
{
} protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
SizeF m_size = e.Graphics.MeasureString(this.Text, this.Font);
e.Graphics.DrawString(this.Text, this.Font, Brushes.Yellow, new RectangleF(this._Location, m_size));//加上字体 Image img = Image.FromFile("alarm2.jpg");
e.Graphics.DrawImage(img, new Point(this.Width-img.Width,0));
//加上图片
} }}