在图像上绘制文本

我之前从未使用过绘画,我有一点问题。 我似乎无法使此代码的输出工作。

该文件正在保存,但它没有在文本上绘图。 任何人都可以看到我可能做错了什么?

编辑:一个愚蠢的错误 – 图像的背景是白色的(刷子颜色是!)。 然而,正如我所料,文本并未居中。 任何想法为什么SO? 🙂

编辑:图片如下。

在此处输入图像描述

谢谢

Bitmap myBitmap = new Bitmap(@"C:\Users\Scott\desktop\blank.bmp"); Graphics g = Graphics.FromImage(myBitmap); g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias; g.DrawString("My\nText", new Font("Tahoma", 20), Brushes.White, new PointF(0, 0)); StringFormat strFormat = new StringFormat(); strFormat.Alignment = StringAlignment.Center; strFormat.LineAlignment = StringAlignment.Center; g.DrawString("My\nText", new Font("Tahoma", 20), Brushes.White, new RectangleF(0, 0, 500, 500), strFormat); myBitmap.Save(@"C:\Users\Scott\desktop\blank1.bmp"); 

我相信你可能正在寻找这个。

 rectf = new RectangleF(655, 460, 535, 90); //rectf for My Text using(Graphics g = Graphics.FromImage(myBitmap)) { //g.DrawRectangle(new Pen(Color.Red, 2), 655, 460, 535, 90); g.SmoothingMode = SmoothingMode.AntiAlias; g.InterpolationMode = InterpolationMode.HighQualityBicubic; g.PixelOffsetMode = PixelOffsetMode.HighQuality; StringFormat sf = new StringFormat(); sf.Alignment = StringAlignment.Center; sf.LineAlignment = StringAlignment.Center; g.DrawString("My\nText", new System.Drawing.Font("Tahoma", 32, FontStyle.Bold), Brushes.Black, rectf, sf); } 

//g.DrawRectangle(new Pen(Color.Red, 2), 655, 460, 535, 90); 行用于显示文本的写入位置。 因此,在您实际制作文本之前,您可以看到在图像上创建此矩形的位置。 如果您想要图像的中心,您可以找到高度和宽度,并将其除以2以找到图像的中心,并相应地绘制矩形参数。