#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的更多相关文章

  1. FFmpeg Basic学习笔记(4)

    图像处理 常见的图片格式包括YUV.BMP.JPG.GIF.PNG. 图像的创建 可以使用下面命令从输入源中截取图像 ffmpeg -i input -ss t image.type 从videocl ...

  2. 使用ffmpeg将BMP图片编码为x264视频文件,将H264视频保存为BMP图片,yuv视频文件保存为图片的代码

    ffmpeg开源库,实现将bmp格式的图片编码成x264文件,并将编码好的H264文件解码保存为BMP文件. 实现将视频文件yuv格式保存的图片格式的測试,图像格式png,jpg, gif等等測试均O ...

  3. MFC下用sdl 显示bmp、rgb、yuv

    #include <libsdl/SDL.h>//#include "SDL.h"#ifdef TEST_VGA16 /* Define this if you wan ...

  4. BMP 转 YUV (BMP2YUV)

    本文介绍BMP 转 YUV.其实这是以前"数据压缩"实验课上的内容,前几天有人问我相关的问题,突然发现自己有一段时间没有接触BMP也有些生疏了,因此翻出资料总结一下. BMP文件格 ...

  5. yuv420转rgb 及 rgb转bmp保存

    /// <summary> /// 将一桢 YUV 格式的图像转换为一桢 RGB 格式图像. /// </summary> /// <param name="y ...

  6. EmguCV(OpenCV)实现高效显示视频(YUV)叠加包括汉字

    视频处理中,往往需要在上面增加文字包括汉字英文字母数字标点等,Emgu.CV/opencv 绘图 线面文字包括中文 这篇里也有相关介绍,但是这篇里根据逐像素修改rgb值的方法效率太低 查了很多资料,基 ...

  7. 最简单的视音频播放示例2:GDI播放YUV, RGB

    前一篇文章对“Simplest Media Play”工程作了概括性介绍.后续几篇文章打算详细介绍每个子工程中的几种技术.在记录Direct3D,OpenGL这两种相对复杂的技术之前,打算先记录一种和 ...

  8. RGB图像数据字符叠加,图像压缩(ijl库),YUV转RGB

    jackyhwei 发布于 2010-01-01 12:02 点击:3218次  来自:CSDN.NET 一些非常有用的图像格式转换及使用的源代码,包括RGB图像数据字符叠加,图像压缩(ijl库),Y ...

  9. C++读取、旋转和保存bmp图像文件编程实现

    以前也遇到过bmp文件的读写.这篇博客很好,写的其他内容也值得学习. 参考:http://blog.csdn.net/xiajun07061225/article/details/6633938  学 ...

随机推荐

  1. css中的px、em、rem 详解

    概念介绍: 1.px (pixel,像素):是一个虚拟长度单位,是计算机系统的数字化图像长度单位,如果px要换算成物理长度,需要指定精度DPI(Dots Per Inch,每英寸像素数),在扫描打印时 ...

  2. adobe photoshop cc 2014 安装失败 解决办法之一

    首先安装失败会有提示 首先贴下错误信息 Exit Code: 34 Please see specific errors below for troubleshooting. For example, ...

  3. WebGrid with filtering, paging and sorting 【转】

    WebGrid with filtering, paging and sorting by Jose M. Aguilar on April 24, 2012 in Web Development A ...

  4. cookie和session的对比

    1.存放的位置     cookie存在客户端的临时文件夹     session:存在服务器的内存中,一个session域对象为一个用户浏览器服务. 2.安全性   cookie是以明文方式存放在客 ...

  5. git alias和gitconfig配置

    [alias] st = status -sb co = checkout br = branch mg = merge ci = commit ds = diff --staged dt = dif ...

  6. Devexpress-1 DataGrid控件

    参考资料: 使用XtraGrid自定义列计算 DEV GridControl小结 实现对两列求和后作为新的列

  7. php去掉字符串的最后一个字符附substr()的用法

    转自:http://www.jb51.net/article/26604.htm 今天项目中用到,去掉字符串中的最后一个字符 原字符串1,2,3,4,5,6, 去掉最后一个字符"," ...

  8. Java字节流:ByteArrayInputStream ByteArrayOutputStream

    ----------------------------------------------------------------------------------- ByteArrayInputSt ...

  9. A simple Snippet in ST2

    Reference: http://web-design-weekly.com/2012/07/03/snippets-in-sublime-text-2/ A sample - cofirm (To ...

  10. 解决pydev无法增加jython271 interpreter的问题

    ============================解决pydev无法增加jython271 interpreter的问题============================ 从jython. ...