一尘不染

如何在运行时动态地从文本生成图像

c#

任何人都可以指导如何从输入文本生成图像。图片可能有任何扩展名都没关系。


阅读 276

收藏
2020-05-19

共1个答案

一尘不染

好的,假设您想在C#中的图像上绘制字符串,则需要在此处使用System.Drawing命名空间:

private Image DrawText(String text, Font font, Color textColor, Color backColor)
{
    //first, create a dummy bitmap just to get a graphics object
    Image img = new Bitmap(1, 1);
    Graphics drawing = Graphics.FromImage(img);

    //measure the string to see how big the image needs to be
    SizeF textSize = drawing.MeasureString(text, font);

    //free up the dummy image and old graphics object
    img.Dispose();
    drawing.Dispose();

    //create a new image of the right size
    img = new Bitmap((int) textSize.Width, (int)textSize.Height);

    drawing = Graphics.FromImage(img);

    //paint the background
    drawing.Clear(backColor);

    //create a brush for the text
    Brush textBrush = new SolidBrush(textColor);

    drawing.DrawString(text, font, textBrush, 0, 0);

    drawing.Save();

    textBrush.Dispose();
    drawing.Dispose();

    return img;

}

此代码将首先测量字符串,然后创建正确大小的图像。

如果要保存此函数的返回,只需调用返回图像的Save方法。

2020-05-19