矢量图形是可缩放的,而光栅则不是。
文本字体是可缩放的(除非您使用位图字体),但是一旦您在位图上绘制字符串,该文本就会变成光栅图像,因此无法再缩放。因此,如果您需要在位图上绘制文本,请尝试使用大图像并使用抗锯齿文本(同样,此图像无法缩放,但如果足够大,则无需放大)。
这是您的代码的修改版本(文本将与 PNG 图像一样大):
添加以下内容using
:
using System.Drawing.Imaging;
using System.Drawing.Drawing2D;
using System.Drawing.Text;
将此行添加到您的表单中(作为私有类字段):
Random rnd = new Random();
其余代码:
int scl = rnd.Next(100, 451);
Bitmap bitmapimage = new Bitmap(2 * scl, scl);
Graphics bitmapGraphics = Graphics.FromImage(bitmapimage);
bitmapGraphics.CompositingMode = CompositingMode.SourceOver;
bitmapGraphics.TextRenderingHint = TextRenderingHint.AntiAlias; // text is now anti-aliased
bitmapGraphics.SmoothingMode = SmoothingMode.HighQuality;
bitmapGraphics.DrawString("test", new Font("Arial", scl * 9 / 10, GraphicsUnit.Pixel), Brushes.Black, new Point(0, 0));
bitmapimage.Save("Image.png", ImageFormat.Png);
bitmapGraphics.Dispose();
顺便说一句,如果您在打印机的 Graphics 对象上绘制文本,该文本仍然是可缩放的,因为打印机不使用像素(但如果您在打印机的 Graphics 对象上绘制光栅图像,如果放大,该图像会变得模糊) .