bmp转yuv_text函数转换日期

bmp转yuv_text函数转换日期voidSaveBMP(BYTE*data,intw,inth) //data指代的是解码后的原始数据,格式为:NV12{FILE*f;unsignedchar*img=NULL;intfilesize=54+3*w*h;     //wisyourimagewidth,hisimageheight,bothi


Jetbrains全系列IDE稳定放心使用


void SaveBMP ( BYTE* data, int w, int h )  // data指代的是解码后的原始数据,格式为:NV12
{

FILE *f;
unsigned char *img = NULL;
int filesize = 54 + 3*w*h;          //w is your image width, h is image height, both int
if( img )  { free( img ); }


img = (unsigned char *)malloc(3*w*h);
memset(img,0,sizeof(img));

for(int j=0; j<h; j++)
{

for(int i=0; i<w; i++)
{

unsigned char r,g,b;
r = data[(((j*w)+i)*4)+2];
g = data[(((j*w)+i)*4)+1];
b = data[(((j*w)+i)*4)+0];
img[(((j*w)+i)*3)+2] = (r);
img[(((j*w)+i)*3)+1] = (g);
img[(((j*w)+i)*3)+0] = (b);
}
}

unsigned char bmpfileheader[14] = {‘B’,’M’, 0,0,0,0, 0,0, 0,0, 54,0,0,0};
unsigned char bmpinfoheader[40] = {40,0,0,0, 0,0,0,0, 0,0,0,0, 1,0, 24,0};
unsigned char bmppad[3] = {0,0,0};

bmpfileheader[ 2] = (unsigned char)(filesize    );
bmpfileheader[ 3] = (unsigned char)(filesize>> 8);
bmpfileheader[ 4] = (unsigned char)(filesize>>16);
bmpfileheader[ 5] = (unsigned char)(filesize>>24);

bmpinfoheader[ 4] = (unsigned char)(       w    );
bmpinfoheader[ 5] = (unsigned char)(       w>> 8);
bmpinfoheader[ 6] = (unsigned char)(       w>>16);
bmpinfoheader[ 7] = (unsigned char)(       w>>24);
bmpinfoheader[ 8] = (unsigned char)(       h    );
bmpinfoheader[ 9] = (unsigned char)(       h>> 8);
bmpinfoheader[10] = (unsigned char)(       h>>16);
bmpinfoheader[11] = (unsigned char)(       h>>24);

        g_FrameCapFile[] = “framecap.bmp”; //保存的图片名称
f = fopen(g_FrameCapFile,”wb”);   

fwrite(bmpfileheader,1,14,f);
fwrite(bmpinfoheader,1,40,f);
for(int i=0; i<h; i++)
{

fwrite(img+(w*(h-i-1)*3),3,w,f);
fwrite(bmppad,1,(4-(w*3)%4)%4,f);
}
fclose(f);
printf(“saved frame capture file width = %d, height = %d\n”, w, h);
}





版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/189727.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • c++ 分苹果_接苹果问题C语言

    c++ 分苹果_接苹果问题C语言#include<iostream>usingnamespacestd;intfun(intm,intn){if(m==0)return1;if(n==1)return1;if(m<n)returnfun(m,m);//最大的情况就是m个苹果放在m个盘子里面if(m>=n)retur…

    2022年10月12日
  • 固态硬盘开盘数据恢复的方法是_硬盘数据恢复原理

    固态硬盘开盘数据恢复的方法是_硬盘数据恢复原理在电脑的使用中有时因为一些不当的操作会导致固态硬盘损坏,有的网友就在现实中遇到了这种情况,咨询小编固态硬盘开盘数据恢复的方法,下面小编就将怎么恢复固态硬盘数据教给大家。更多一键重装系统的方法在这里工具/原料系统版本:win10教育版品牌型号:华为MateBookXPro方法一、固态硬盘开盘数据恢复的方法1、怎么恢复固态硬盘数据呢,首先可以查看回收站,如果被删除的数据还在回收站里点击还原即可。方法二、固态硬盘开盘数据恢复的方法1、下载安装嗨格式数据恢复大师,在首界面选择恢复模式和文件存储位置,点击扫描,

    2022年9月20日
  • Matlab fmincon函数用法

    Matlab fmincon函数用法这个函数在之前优化工具箱一文中已经介绍过,由于其应用广泛,所以这里通过实例单独整理一下其用法。一、基本介绍求解问题的标准型为minF(X)s.tAX<=bAeqX=beqG(x)<=0Ceq(X)=0VLB<=X<=VUB其中X为n维变元向量,G(x)与Ceq(X)均为非线性函数组成的向量,其它变量的含…

    2022年4月30日
  • PHP之多线程

    PHP之多线程前言前些天帮同事查一个问题,第一次接触到了PHP的多线程,原以为PHP普遍都是单线程模型,并不适合多线程领域,花些时间翻了几个多线程的项目源码之后,发现PHP的多线程也颇有可取之处,活用

    2022年7月1日
  • Spring Batch(4): Job具体解释[通俗易懂]

    第四章配置作业Job4.1基本配置Job的配置有3个必须的属性。name,jobRepository,steps。一个简单的Job配置例如以下:&lt;jobid="footballJob"&gt;&lt;stepid="playerload"parent="s1"next="gameLoad"/&gt;&a

    2022年4月14日
  • mysql 取消外键约束_主键约束和外键约束什么意思

    mysql 取消外键约束_主键约束和外键约束什么意思**Mysql中取消外键约束**Mysql中如果表和表之间建立的外键约束,则无法删除表及修改表结构。解决方法是在Mysql中取消外键约束:SETFOREIGN_KEY_CHECKS=0;然后将原来表的数据导出到sql语句,重新创建此表后,再把数据使用sql导入,然后再设置外键约束:SETFOREIGN_KEY_CHECKS=1;…

    2022年10月21日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号