每周一记!
最近使用GDI实现了给视频添加字幕以及字幕出场和结束特效的功能,特此记录一下实现过程,注意这里的视频字幕是直接写入视频文件的。
实现字幕的基本思路:首先创建一个设备位图,用DrawText函数往位图里面写字,然后取出位图数据与原视频解码出来的图片数据进行像素混合,这样就实行了添加字幕功能。
创建设备位图代码如下:
int width = 800;
int height = 600;
//创建兼容性hdc
HDC hDcMen = CreateCompatibleDC(hdc);
//创建宽高固定的位图设备
HBITMAP hBitmap = CreateCompatibleBitmap(hDcMen, width, height);
//替换位图设备
HBITMAP hOldBitmap = (HBITMAP)SelectObject(hDcMen, hBitmap );
这样我们就创建了一个800*600的位图设备,然后往里面写入字幕。
TCHAR szText[] = TEXT(