yuv转bmp
#ifdef _INTERFACE_H
#error _INTERFACE_H has be exsisted
#else
#define _INTERFACE_H #include "stdafx.h"//类型定义在这个文件中
#include "stdlib.h"
#include "windows.h"
void SaveYUV(AVFrame *picture, int width, int height,int iFrame)
#pragma once #ifndef _WINGDI_
#define _WINGDI_ typedef struct tagBITMAPFILEHEADER
{
WORD bfType;
DWORD bfSize;
WORD bfReserved1;
WORD bfReserved2;
DWORD bfOffBits;
} BITMAPFILEHEADER, FAR *LPBITMAPFILEHEADER, *PBITMAPFILEHEADER; typedef struct tagBITMAPINFOHEADER
{
DWORD biSize;
LONG biWidth;
LONG biHeight;
WORD biPlanes;
WORD biBitCount;
DWORD biCompression;
DWORD biSizeImage;
LONG biXPelsPerMeter;
LONG biYPelsPerMeter;
DWORD biClrUsed;
DWORD biClrImportant;
} BITMAPINFOHEADER, FAR *LPBITMAPINFOHEADER, *PBITMAPINFOHEADER; #endif
#endif void SaveYUVS(uint8_t* yuv, int width, int height, int iFrame)
{
FILE *pFile;
char szFilename[32];
int y;
sprintf(szFilename, ".\\yuv\\rotate%d_%d_%d.yuv", iFrame, width, height); pFile=fopen(szFilename, "ab+");
if(pFile == NULL)
return; fwrite(yuv,sizeof(char),width * height*3/2,pFile);//
fflush(pFile);
fclose(pFile);
} #if 1
picture->data[0] += picture->linesize[0] * (pAVCodecCtx->height - 1);
picture->linesize[0] *= -1;
picture->data[1] += picture->linesize[1] * (pAVCodecCtx->height / 2 - 1);
picture->linesize[1] *= -1;
picture->data[2] += picture->linesize[2] * (pAVCodecCtx->height / 2 - 1);
picture->linesize[2] *= -1;
//转换图像格式,将解压出来的YUV420P的图像转换为BRG24的图像
int PictureSize=avpicture_get_size (PIX_FMT_BGR24, pAVCodecCtx->width, pAVCodecCtx->height);
uint8_t* buf = (uint8_t*)av_malloc(PictureSize);
avpicture_fill ( (AVPicture *)pFrameRGB, buf, PIX_FMT_BGR24, pAVCodecCtx->width, pAVCodecCtx->height);
SwsContext* pSwsCtx = sws_getContext (pAVCodecCtx->width,pAVCodecCtx->height,pAVCodecCtx->pix_fmt,pAVCodecCtx->width,pAVCodecCtx->height,PIX_FMT_BGR24,SWS_BICUBIC,NULL, NULL, NULL);
sws_scale (pSwsCtx,picture->data,picture->linesize,0,pAVCodecCtx->height,pFrameRGB->data,pFrameRGB->linesize);
SaveAsBMP (pFrameRGB,pAVCodecCtx->width,pAVCodecCtx->height, count, 24);
av_free(buf);
sws_freeContext(pSwsCtx);
#endif
yuv转bmp的更多相关文章
- FFmpeg Basic学习笔记(4)
图像处理 常见的图片格式包括YUV.BMP.JPG.GIF.PNG. 图像的创建 可以使用下面命令从输入源中截取图像 ffmpeg -i input -ss t image.type 从videocl ...
- 使用ffmpeg将BMP图片编码为x264视频文件,将H264视频保存为BMP图片,yuv视频文件保存为图片的代码
ffmpeg开源库,实现将bmp格式的图片编码成x264文件,并将编码好的H264文件解码保存为BMP文件. 实现将视频文件yuv格式保存的图片格式的測试,图像格式png,jpg, gif等等測试均O ...
- MFC下用sdl 显示bmp、rgb、yuv
#include <libsdl/SDL.h>//#include "SDL.h"#ifdef TEST_VGA16 /* Define this if you wan ...
- BMP 转 YUV (BMP2YUV)
本文介绍BMP 转 YUV.其实这是以前"数据压缩"实验课上的内容,前几天有人问我相关的问题,突然发现自己有一段时间没有接触BMP也有些生疏了,因此翻出资料总结一下. BMP文件格 ...
- yuv420转rgb 及 rgb转bmp保存
/// <summary> /// 将一桢 YUV 格式的图像转换为一桢 RGB 格式图像. /// </summary> /// <param name="y ...
- EmguCV(OpenCV)实现高效显示视频(YUV)叠加包括汉字
视频处理中,往往需要在上面增加文字包括汉字英文字母数字标点等,Emgu.CV/opencv 绘图 线面文字包括中文 这篇里也有相关介绍,但是这篇里根据逐像素修改rgb值的方法效率太低 查了很多资料,基 ...
- 最简单的视音频播放示例2:GDI播放YUV, RGB
前一篇文章对“Simplest Media Play”工程作了概括性介绍.后续几篇文章打算详细介绍每个子工程中的几种技术.在记录Direct3D,OpenGL这两种相对复杂的技术之前,打算先记录一种和 ...
- RGB图像数据字符叠加,图像压缩(ijl库),YUV转RGB
jackyhwei 发布于 2010-01-01 12:02 点击:3218次 来自:CSDN.NET 一些非常有用的图像格式转换及使用的源代码,包括RGB图像数据字符叠加,图像压缩(ijl库),Y ...
- C++读取、旋转和保存bmp图像文件编程实现
以前也遇到过bmp文件的读写.这篇博客很好,写的其他内容也值得学习. 参考:http://blog.csdn.net/xiajun07061225/article/details/6633938 学 ...
随机推荐
- css中的px、em、rem 详解
概念介绍: 1.px (pixel,像素):是一个虚拟长度单位,是计算机系统的数字化图像长度单位,如果px要换算成物理长度,需要指定精度DPI(Dots Per Inch,每英寸像素数),在扫描打印时 ...
- adobe photoshop cc 2014 安装失败 解决办法之一
首先安装失败会有提示 首先贴下错误信息 Exit Code: 34 Please see specific errors below for troubleshooting. For example, ...
- WebGrid with filtering, paging and sorting 【转】
WebGrid with filtering, paging and sorting by Jose M. Aguilar on April 24, 2012 in Web Development A ...
- cookie和session的对比
1.存放的位置 cookie存在客户端的临时文件夹 session:存在服务器的内存中,一个session域对象为一个用户浏览器服务. 2.安全性 cookie是以明文方式存放在客 ...
- git alias和gitconfig配置
[alias] st = status -sb co = checkout br = branch mg = merge ci = commit ds = diff --staged dt = dif ...
- Devexpress-1 DataGrid控件
参考资料: 使用XtraGrid自定义列计算 DEV GridControl小结 实现对两列求和后作为新的列
- php去掉字符串的最后一个字符附substr()的用法
转自:http://www.jb51.net/article/26604.htm 今天项目中用到,去掉字符串中的最后一个字符 原字符串1,2,3,4,5,6, 去掉最后一个字符"," ...
- Java字节流:ByteArrayInputStream ByteArrayOutputStream
----------------------------------------------------------------------------------- ByteArrayInputSt ...
- A simple Snippet in ST2
Reference: http://web-design-weekly.com/2012/07/03/snippets-in-sublime-text-2/ A sample - cofirm (To ...
- 解决pydev无法增加jython271 interpreter的问题
============================解决pydev无法增加jython271 interpreter的问题============================ 从jython. ...