我想使用 GDI 在服务器上使用我的字体生成文本图像,以便在我的网站上提供服务。
我想在我的网站上使用任何字体,但当然不能在网站上使用任何字体......所以我想我需要自己生成文本的图像。
想法如何做到这一点?
谢谢。
我想使用 GDI 在服务器上使用我的字体生成文本图像,以便在我的网站上提供服务。
我想在我的网站上使用任何字体,但当然不能在网站上使用任何字体......所以我想我需要自己生成文本的图像。
想法如何做到这一点?
谢谢。
private void button1_Click( object sender, EventArgs e )
{
using( Font f = new Font( "Times New Roman", 22f ) )
{
pictureBox1.Image = CreateImage( "TEXT", pictureBox1.Size, f, Color.Black );
}
}
Bitmap CreateImage( string text, Size imageSize, Font font, Color fontColor )
{
Bitmap image = new Bitmap( imageSize.Width, imageSize.Height );
using( Graphics g = Graphics.FromImage( image ) )
using( Brush brush = new SolidBrush( fontColor ) )
{
g.DrawString( text, font, brush, new PointF( 0, 0 ) );
}
return image;
}
这将简单地创建一个具有一定大小文本的图像并将其分配给图片框。您当然需要添加用于设置对齐方式和类似性质的功能,但这是基本思想。创建一个图像,从中获取一个 Graphics 对象,然后绘制一个字符串。
您还可以使用 Graphics.MeasureString 方法使用某些字体 'f' 获取绘制字符串的宽度和高度。
为了清楚起见,带有硬编码的代码示例:
Bitmap b = new Bitmap(200, 100);
using (Graphics g = Graphics.FromImage(b)) {
g.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias;
g.DrawString("Hello World!", new Font("Tahoma", 12), Brushes.DarkBlue, 0, 0);
b.Save("c:\\MyPic.bmp");
}
图片大小 (200x100)、文本、字体和起始位置 (0,0) 以及目标路径都是硬编码的。