在做图片监控显示的时候,需要在图片上添加文字,如果用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));
//加上图片
} }}