现在的位置: 首页 > 综合 > 正文

生成长微博(文转图)方法

2012年10月02日 ⁄ 综合 ⁄ 共 2336字 ⁄ 字号 评论关闭

 #region 长微博生成图片处理合心方法
        public string ConvertTextFileToImage(String text, String imageFile)
        {
            System.Drawing.Font drawFont = new System.Drawing.Font("微软雅黑", 12);
            System.Drawing.Bitmap image = new System.Drawing.Bitmap(1, 1);
            System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(image);
            //String text = System.IO.File.ReadAllText(textFile, Encoding.GetEncoding("GB2312"));
            System.Drawing.SizeF sf = g.MeasureString(text, drawFont, 440); //设置一个显示的宽度 
            string logo = System.Web.HttpContext.Current.Server.MapPath("~/images/logo.png");
            System.Drawing.Image watering = System.Drawing.Image.FromFile(logo);//得到数字水印图片  
            image = new System.Drawing.Bitmap(image, new System.Drawing.Size(Convert.ToInt32(sf.Width + 10), Convert.ToInt32(sf.Height + 140)));
            g = System.Drawing.Graphics.FromImage(image);
            g.Clear(System.Drawing.Color.White);
            g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit;
            g.DrawString("长微博", new System.Drawing.Font("微软雅黑", 15, FontStyle.Bold), new System.Drawing.SolidBrush(System.Drawing.Color.FromArgb(150, 150, 150)), new System.Drawing.RectangleF(new System.Drawing.PointF(10, 25), sf));
            g.DrawImage(watering, new Rectangle(292, 10, watering.Width, watering.Height), 0, 0, watering.Width, watering.Height, GraphicsUnit.Pixel);
            g.DrawLine(new System.Drawing.Pen(System.Drawing.Color.Gray), new System.Drawing.Point(10, 58), new System.Drawing.Point(image.Width - 10, 58));
            g.DrawString(text, drawFont, System.Drawing.Brushes.Black, new System.Drawing.RectangleF(new System.Drawing.PointF(10, 70), sf));//设置在画板上的坐标
            g.DrawLine(new System.Drawing.Pen(System.Drawing.Color.Gray), new System.Drawing.Point(10, image.Height - 55), new System.Drawing.Point(image.Width - 10, image.Height - 55));
            g.DrawString("来自博长微博工具", new System.Drawing.Font("宋体", 10), new System.Drawing.SolidBrush(System.Drawing.Color.FromArgb(150, 150, 150)), new System.Drawing.RectangleF(new System.Drawing.PointF(10, image.Height - 45), sf));
            g.DrawString("图文自动生成,不代表站方观点", new System.Drawing.Font("宋体", 10), new System.Drawing.SolidBrush(System.Drawing.Color.FromArgb(150, 150, 150)), new System.Drawing.RectangleF(new System.Drawing.PointF(10, image.Height - 25), sf));
            string urladdress = System.Web.HttpContext.Current.Server.MapPath("\\UserUploads\\Images\\");
            //image.Save(urladdress + imageFile, System.Drawing.Imaging.ImageFormat.Png);
            string im = ImgInBank(image, imageFile);
            g.Dispose();
            image.Dispose();
            return im;
        }
        #endregion

长微博的地方用得到,logo.png是网站额Logo。最开始用的复杂方法,后来发现效果不太好,后来演化成这样。

抱歉!评论已关闭.