把txt文件中的文字生成透明的PNG文件,该怎样做?

解决方案 »

  1.   

    var fontName = textToImageSection.GetString("FontName", "Courier New");
    var fontSize = textToImageSection.GetInt("FontSize", 12);
    textFont = new Font(fontName, fontSize);var sf = new StringFormat(StringFormatFlags.MeasureTrailingSpaces);
    sf.Trimming = StringTrimming.Character;
    var text = File.ReadAllText(textFile.Path);
    var image = new Bitmap(1, 1);
    var textSize = new Size();
    using (var g = Graphics.FromImage(image))
    textSize = g.MeasureString(text, textFont, int.MaxValue, sf).ToSize();
    image = new Bitmap(image, textSize);
    using (var g = Graphics.FromImage(image))
    {
        g.Clear(Color.White);   
        g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit;
        g.DrawString(text, textFont, Brushes.Black, borderLeft, borderTop, sf);
    }image.SaveAsTiff(path);
      

  2.   


    textToImageSection、textFont这些需要都是自己声明的吗?
      

  3.   

    本帖最后由 net_lover 于 2011-08-12 16:53:16 编辑
      

  4.   

    不是白色的,文字是黑色的。
    生成换行的图片
    Font drawFont = new Font("宋体", 12);
    Bitmap image = new Bitmap(1, 1);
    Graphics g = Graphics.FromImage(image);
    String text = File.ReadAllText("I:\\aa.txt", Encoding.GetEncoding("GB2312"));
    SizeF sf = g.MeasureString(text, drawFont, 600); //设置一个显示的宽度 
    image = new Bitmap(image, new Size(Convert.ToInt32(sf.Width), Convert.ToInt32(sf.Height)));
    g = Graphics.FromImage(image);
    g.Clear(Color.White); 
    g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit;
    g.DrawString(text, drawFont, Brushes.Black, new RectangleF(new PointF(0, 0), sf));
    image.Save("I:\\aa.Png", ImageFormat.Png);
      

  5.   


    里边的File 和FromImage 原来是没有的,还需要加上两个头文件,分别是:
    using System.IO;
    using System.Drawing.Imaging;
    原来我就是没有加这两个头文件。
    另外,谢谢您的帮助。
      

  6.   


    如果需要是透明的,把g.Clear(Color.White); 删掉就行了