ffmpeg AVFrame转BMP 或者其他形式转化也可
2016-11-25 13:40
169 查看
void CffmpegUIDlg::SaveAsBMP(AVFrame *pFrameRGB, int width, int height, int bpp) { BITMAPFILEHEADER bmpheader; BITMAPINFOHEADER bmpinfo; bmpheader.bfType = 0x4d42; bmpheader.bfReserved1 = 0; bmpheader.bfReserved2 = 0; bmpheader.bfOffBits = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER); bmpheader.bfSize = bmpheader.bfOffBits + width*height*bpp / 8; bmpinfo.biSize = sizeof(BITMAPINFOHEADER); bmpinfo.biWidth = width; bmpinfo.biHeight = height; bmpinfo.biPlanes = 1; bmpinfo.biBitCount = bpp; bmpinfo.biCompression = BI_RGB; bmpinfo.biSizeImage = (width*bpp + 31) / 32 * 4 * height; bmpinfo.biXPelsPerMeter = 100; bmpinfo.biYPelsPerMeter = 100; bmpinfo.biClrUsed = 0; bmpinfo.biClrImportant = 0; DWORD dwInfoSize = width*height*bpp / 8; HGLOBAL hGlobal = GlobalAlloc( GMEM_MOVEABLE, sizeof(bmpheader) + sizeof(bmpinfo) + dwInfoSize); BYTE *pvData = (BYTE*)GlobalLock( hGlobal ); memcpy(pvData, &bmpheader, sizeof(bmpheader)); memcpy(pvData + sizeof(bmpheader), &bmpinfo, sizeof(bmpinfo)); memcpy(pvData + sizeof(bmpheader) + sizeof(bmpinfo), pFrameRGB->data[0], dwInfoSize); GlobalUnlock( hGlobal ); Gdiplus::Graphics graphics(hdcClient); IStream *pStream = NULL; HRESULT hr = CreateStreamOnHGlobal( hGlobal, TRUE, &pStream ); Gdiplus::Bitmap bmp(pStream); graphics.DrawImage(&bmp, 0, 0); GlobalFree( hGlobal ); // 使用Bitmap完后,需要释放资源,以免造成内存泄漏。 }
相关文章推荐
- C++ AVFrame转BMP 或者其他形式转化也可
- 如何把所有 ILM 2007 产生的 AD 变更以Email或者其他形式告诉订阅放
- 24位bmp转化为 565或者888C语言数组文件
- ffmpeg(7):将h264编码的视频流保存为BMP或者JPEG图片
- FFmpeg 视频转化为bmp图片实例解析
- python3 tolist函数 其他形式(数组或者矩阵等)转为列表形式
- FFMPEG开发中的常用功能代码①BMP文件的读取、转正并写入AVFrame的data
- ffmpeg :将h264编码的视频流保存为BMP或者JPEG图片
- C#double转化成字符串 保留小数位数, 不以科学计数法的形式出现(转)
- QString 到其他类型的转化
- ffmpeg从视频文件中读取成bmp图片
- 汉字转化为拼音以及其他函数
- linux下如何用C进行录音,录成.WAV格式,或者其他格式
- .bat文件打开没出现dos命令窗口,而是变成记事本,或者其他界面的解决办法
- socket(http或者其他网络请求)在主线程中使用会报错:NetworkOnMainThreadException
- 有两个变量a 和 b,不用if、?: 、switch 或者其他判断语句,找出两个数中比较大的那个
- 数据库中将null 替换成 0 或者其他文本
- Excel批量设置数字转化成“以文本形式存储的数字”
- C#double转化成字符串 保留小数位数, 不以科学计数法的形式出现。
- VFP将图片或其他文件保存到SQL Server的Text类型字段或者Access的备注字段中,并可以还原或显示。 .