这里是我正在使用的代码,我真的需要这样做,所以文本不会出现在框内。那可能吗?
int width = (int)g.MeasureString(line, f).Width;
int height = (int)g.MeasureString(line,f).Height;
b = new Bitmap(b, new Size(width, height));
g = Graphics.FromImage(b);
g.Clear(Color.Empty);
g.DrawString(line,f, new SolidBrush(Color.Black), 0, 0);
b.Save(savepoint+line+".tif", System.Drawing.Imaging.ImageFormat.Tiff);
g.Flush();
我的意思是在转换为图像的文本周围不能有矩形。所以我需要把它看成相同的颜色来创造没有盒子的错觉,或者永远不要写出那个矩形时期。
答案 0 :(得分:2)
使用背景颜色透明和支持透明度的文件格式,如PNG:
var measure = g.MeasureString(line, f);
int width = (int)measure.Width;
int height = (int)measure.Height;
using (Bitmap b = new Bitmap(width, height)) {
using (Graphics bg = Graphics.FromImage(b)) {
bg.Clear(Color.Transparent);
using (Brush black = new SolidBrush(Color.Black)) {
bg.DrawString(line, f, black, 0, 0);
}
}
b.Save(savepoint+line+".png", System.Drawing.Imaging.ImageFormat.Png);
}
我注意到你确实覆盖了你的Graphics实例,没有处理你创建的对象,并且没有明显的原因调用Graphics.Flush ......