想做一个函数 输入是一张普通的图片和一个字符串
如何把字符串和图片融合成一个新图片 
新图片上有这个字符串

解决方案 »

  1.   


    #region IHttpHandler 成员    public bool IsReusable
        {
            get { return false; }
        }    public void ProcessRequest(HttpContext context)
        {
            string imagePath = context.Request.PhysicalPath;
            Bitmap image = null;
            if (context.Cache[imagePath] == null)
            {
                image = new Bitmap(imagePath);//实例化图片
                image = AddWaterMark(image);//给图片添加文字
                context.Cache[imagePath] = image;
            }
            else
            {
                image = context.Cache[imagePath] as Bitmap;
            }
            image.Save(context.Response.OutputStream, ImageFormat.Jpeg);//将添加水印的图片输入到当前流中
        }
            #endregion    //给图片添加水印
        private Bitmap AddWaterMark(Bitmap image)
        {
    //读取config文件中设置的给图片要添加的文字
            string text = System.Configuration.ConfigurationManager.AppSettings["WaterMark"].ToString();
    //读取配置中设置的添加文字的字体大小
            int fontSize = int.Parse(System.Configuration.ConfigurationManager.AppSettings["Font-Size"].ToString());
            Font font = new Font("宋体", fontSize);        Brush brush = Brushes.DarkGray;
            Graphics g = Graphics.FromImage(image);
    //获取用指定字体绘制指定字符串所需要的Size大小
            SizeF size = g.MeasureString(text, font);
    //在图片上绘制文字
            g.DrawString(text, font, brush, image.Width - size.Width, image.Height - size.Height);
            g.Dispose();
            return image;
        }
      

  2.   

    简单的就像这样做:
    public void DrawTo(Bitmap bitmap, string s)
    {
        using (Graphics g = Graphics.FromImage(bitmap))
        {
            g.DrawString(s, SystemFonts.DefaultFont, Brushes.Black, 0, 0);
        }
    }可能你还要控制字体,颜色,对齐等,要相应修改。
      

  3.   

    这个简单方法     public void TextDrawBitmap(Bitmap p_Bitmap, Font p_TextFont, Point p_TextPoint, Brush p_TextBrush, string p_Text)
            {
                Graphics _Graphics = Graphics.FromImage(p_Bitmap);
                _Graphics.DrawString(p_Text, p_TextFont, p_TextBrush, p_TextPoint);
                _Graphics.Dispose();
            }
    使用   Bitmap _Bitmap = (Bitmap)Image.FromFile(@"C:\image020.jpg");            TextDrawBitmap(_Bitmap, new Font("宋体", 20), new Point(0, 0), Brushes.Yellow, "绘制汉字");
                pictureBox1.Image = _Bitmap;