gpt4 book ai didi

c# - 将文本从字体添加到视频帧

转载 作者:太空宇宙 更新时间:2023-11-04 04:03:51 26 4
gpt4 key购买 nike

我正在使用 ffmpeg 解码使用 DirectShow 显示的 rtsp 流 我需要向每个视频帧添加文本,我还需要录制添加了文本的视频。因此我不能使用 DirectShow 来覆盖文本,因为它不会在要保存的原始帧上。文本的(尚未确定)要求是它可以是各种字体或大小等。

然后我假设我需要创建我的文本的原始位图并将其覆盖在我的原始 BGR 图像之上。我知道如何覆盖当前图像。我不知道的是如何从 Font XX、Size、XX、String XX 到一些原始数据进行叠加。

有人可以建议我应该做什么或指出正确的方向吗?我的低级代码是用 C/C++ 编写的,但这是由 C#.Net 应用程序驱动的。

感谢任何帮助。

谢谢。

最佳答案

您必须获取要在其上写入文本的原始位图的设备上下文 (HDC),然后执行如下操作:

CString out = "My String";

LOGFONT LogFont;
memset( &LogFont, 0, sizeof( LOGFONT ) );
LogFont.lfStrikeOut = 0;
LogFont.lfUnderline = 0;
LogFont.lfHeight = 12;
LogFont.lfEscapement = 0;
LogFont.lfQuality = CLEARTYPE_QUALITY;
LogFont.lfItalic = FALSE;
strcpy(LogFont.lfFaceName, "Arial");

HFONT font = CreateFontIndirect(&LogFont);

HDC dc = // Get your DC from the Raw Bitmap
SelectObject(dc, font);
SetTextColor(dc, RGB(255, 255, 255) );
SetBkMode(dc, TRANSPARENT);
TextOut(dc, 0, 0, out.GetBuffer(), out.GetLength() );
DeleteObject( font );

// Release the Raw Bitmap DC

关于c# - 将文本从字体添加到视频帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8536838/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com