0

我正在尝试在 EmguCV(OpenCV C# 包装器)图像上绘制一个多行的字符串。但是 EmguCV 似乎无法识别换行符“\r\n”字符。

怎样才能做到这一点?或者,如何获取文本高度,以便手动设置下一个字符串的位置?

StringBuilder imageComments = new StringBuilder();
imageComments.AppendLine("Camera status");
imageComments.AppendLine("Shutter: " + shutter);
Emgu.CV.Image<Gray, Byte> img = new Emgu.CV.Image<Gray, byte>(bmp);
Point location = new Point(30, 30);
MCvFont font = new MCvFont(Emgu.CV.CvEnum.FONT.CV_FONT_HERSHEY_SIMPLEX, 0.3f, 0.3f);
Gray color = new Gray(255);
img.Draw(imageComments.ToString(), ref font, location, color);
4

1 回答 1

2

您始终可以创建自己的函数,将段落解析为单独的行,然后生成每行所需的 y 位移。如果我没记错的话,默认字体大小是 16 像素。

void myDrawMultiLineText(string InputParagraph, Point Origin)
{
vector<string> LinesOfText = myParse(InputParagraph,"\n");
for (int i=0;i<LinesOfText.size(); ++i)
    DrawText(CurrentLine[i], Origin.x, Origin.y + i*16);
}
于 2013-06-05T17:11:49.680 回答