位图文本背景和水平对齐

本文关键字:水平 对齐 背景 文本 位图 | 更新日期: 2023-09-27 18:24:05

我将文本覆盖到位图中,如下所示,我需要能够在文本后面设置背景颜色,还需要设置水平对齐(即左/右/中),有人能告诉我如何做到这一点吗。还要注意,文本大小可能会有所不同。

谢谢。

Bitmap frameBitmap = new Bitmap(streamFrameWidth, streamFrameHeight, 
        streamFrameWidth * 3, 
        System.Drawing.Imaging.PixelFormat.Format24bppRgb, pFrame);
using (Graphics g = Graphics.FromImage(frameBitmap))
{
    // Create font and brush.
    Font drawFont = new Font("Arial", 12, FontStyle.Bold);
    SolidBrush drawBrush = new SolidBrush(Color.Black);
    // Create point for upper-left corner of drawing.
    PointF drawPoint = new PointF(10.0F, 40.0F);
    //HorizontalAlignment.
    // draw the text
    g.DrawString(overlayText, drawFont, drawBrush, drawPoint);
}

位图文本背景和水平对齐

您可以使用DrawString方法的StringFormat参数来控制绘制文本的对齐。

  • 示例
  • MSDN

您可能需要TextRenderer.MeasureText

它返回要显示的文本的大小。将文本的大小与位图的大小相结合,可以根据所需的HorizontalAlignment计算出文本的适当位置。

一旦你知道了文本的边界(大小和位置),你就可以简单地在这些边界上绘制一种颜色,在顶部绘制文本之前实现背景色。