如何将文本转换为图像?图像分辨率必须非常小~30x30 到 100x100,并且只能是单色。
我尝试使用 GDI 来执行此操作,但由于别名等原因,它会生成具有多种颜色的文本。
对于图像,使用 RenderTargetBitmap.Render() 将文本块渲染为位图,如此处所述。这是一个示例,其中渲染 TextBlock“文本块”,并将结果分配给图像“图像”
var bitmap = new RenderTargetBitmap();
bitmap.Render(textblock);
image.Source = bitmap;
试试这个。您可以在下面的代码中使用 GraphicsObject 来设置文本渲染的默认类型,即无抗锯齿。您可以使用所需的任意 RGB 组合(单个或多个)来设置颜色。我这里用的是棕色
private Bitmap CreateImageFromText(string Text)
{
// Create the Font object for the image text drawing.
Font textFont = new Font("Arial", 25, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel);
Bitmap ImageObject = new Bitmap(30, 30);
// Add the anti aliasing or color settings.
Graphics GraphicsObject = Graphics.FromImage(ImageObject);
// Set Background color
GraphicsObject.Clear(Color.White);
// to specify no aliasing
GraphicsObject.SmoothingMode = SmoothingMode.Default;
GraphicsObject.TextRenderingHint = TextRenderingHint.SystemDefault;
GraphicsObject.DrawString(Text, textFont, new SolidBrush(Color.Brown), 0, 0);
GraphicsObject.Flush();
return (ImageObject);
}
您可以使用您喜欢的字符串调用此函数,然后使用 Bitmap.Save 方法保存图像。请注意,您将需要使用命名空间 System.Drawing、System.Drawing.Drawing2D、System.Drawing.Text
块引用
;;