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);
textToImageSection、textFont这些需要都是自己声明的吗?
本帖最后由 net_lover 于 2011-08-12 16:53:16 编辑
不是白色的,文字是黑色的。 生成换行的图片 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);
里边的File 和FromImage 原来是没有的,还需要加上两个头文件,分别是: using System.IO; using System.Drawing.Imaging; 原来我就是没有加这两个头文件。 另外,谢谢您的帮助。
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);
textToImageSection、textFont这些需要都是自己声明的吗?
生成换行的图片
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);
里边的File 和FromImage 原来是没有的,还需要加上两个头文件,分别是:
using System.IO;
using System.Drawing.Imaging;
原来我就是没有加这两个头文件。
另外,谢谢您的帮助。
如果需要是透明的,把g.Clear(Color.White); 删掉就行了