位图文本背景和水平对齐
本文关键字:水平 对齐 背景 文本 位图 | 更新日期: 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计算出文本的适当位置。
一旦你知道了文本的边界(大小和位置),你就可以简单地在这些边界上绘制一种颜色,在顶部绘制文本之前实现背景色。