导航

主要的代码是:
        /// <summary>
        
/// 
        
/// </summary>
        
/// <param name="strImgpath">需要加标签的图片的路径</param>
        
/// <param name="strTag">标签文字</param>
        
/// <param name="strFontName">字体的名字</param>
        
/// <param name="strFontSize">字体的大小</param>
        
/// <returns></returns>

        public MemoryStream ImgAddTag(string strImgpath, string strTag, string strFontName, float fFontSize)
        
{
            
if(!File.Exists(strImgpath))
                
return null;
            
            
if(strTag.Trim() == string.Empty && strTag.Trim().Length == 0)
                
return null;

            MemoryStream ms 
= new MemoryStream();
            
using(System.Drawing.Image image = System.Drawing.Image.FromFile(strImgpath))
            
using(System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(image, image.Width, image.Height))
            
using(System.Drawing.Graphics g = Graphics.FromImage(bitmap))
            
{
                
float fSize = fFontSize;    //字体的大小
                float fWidth = strTag.Length*fSize;  //文本的长度

                
//为定义矩形做准备
                
//float fRectangleX = 0; 
                
//float fRectangleY = 0; 
                float fRectangleX = image.Width - strTag.Length*fSize;  //矩形的坐标位置X
                float fRectangleY = image.Height - fSize*2f;                 //矩形的坐标位置Y
                float fRectangleWidth  = strTag.Length*fSize;
                
float fRectangleHeigth = fSize*2f;

                System.Drawing.RectangleF rectanflef 
= new RectangleF(fRectangleX, fRectangleY, fRectangleWidth, fRectangleHeigth);
                System.Drawing.Font font 
= new Font(strFontName, fSize); //定义字体
                
                
//画文字使用 Brush 画笔对象的抽象基类
                System.Drawing.Brush Bwhite = new SolidBrush(Color.White); //SolidBrush 定义单色的画刷,画刷用于填充图形形状.  
                
                
//画背景使用 Brush 画笔对象的抽象基类
                System.Drawing.Brush Bblack = new SolidBrush(Color.Black);

                
//FillRectangle由一对坐标,一个宽度和一个高度指定的矩形的内部
                g.FillRectangle(Bblack, fRectangleX, fRectangleY, fRectangleWidth, fRectangleHeigth); 

                g.DrawString(strTag, font, Bwhite, rectanflef);

                bitmap.Save(ms, ImageFormat.Jpeg);
            }

            
return ms;
        }

外部使用的时候,简单设置一下就可以了!
例如:
private void button1_Click(object sender, System.EventArgs e)
{
    
string strGuid = System.Guid.NewGuid().ToString();
    
using(System.Drawing.Bitmap bitmap = new Bitmap(ImgToTag.Instance.ImgAddTag(PicPath, DateTime.Now.ToString("yyyy-MM-dd"+ " 美丽的海南岛", FontName, FontSize)))
    
{
        bitmap.Save(
string.Format(@"e:\{0}.jpg", strGuid));
    }

    pictureBox1.Image 
=System.Drawing.Image.FromFile(string.Format(@"e:\{0}.jpg", strGuid));
}

自娱自乐一下!