• 大小: 16KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-09
  • 语言: 其他
  • 标签: yuv  jpg  

资源简介

在linux下从yuv转jpg的转换,没有调用jpeg库,适合嵌入式开发,没有调用libjpeg......

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#include 

int get_Y_U_V(unsigned char*rDataunsigned char* in_Yunsigned char* in_Uunsigned char* in_Vint nStrideint height)
{
int i = 0;
int y_n =0;
int u_n =0;
int v_n =0;
int u = 0;
int v = 2;
int size = nStride*height*2;
while(i if(i%2 != 0){
in_Y[y_n]= rData[i];
y_n++;
}
else if(i == u){
in_U[u_n]= rData[i];
u += 4;
u_n++;
}
else if(i == v){
in_V[v_n] = rData[i];
v += 4;
v_n++;
}
i++;
}
return 0;
}

int main()
{
unsigned char* in_Y = (unsigned char*)malloc(720*576);//
unsigned char* in_U = (unsigned char*)malloc(720 * 576/2);//
unsigned char* in_V = (unsigned char*)malloc(720 * 576 / 2);//
unsigned char* pData = (unsigned char*)malloc(720 * 576);//
unsigned char* rData = (unsigned char*)malloc(720*576*2);

unsigned long dwSize = 0;
FILE *rfp = fopen(“1““rb“);
if(NULL == rfp)
fprintf(stderr“fopen fp error:%s\n“strerror(errno));
fread(rData720*576*21rfp);

get_Y_U_V(rDatain_Yin_Uin_V720576);

YUV2Jpg(in_Yin_Uin_V720576100720pData&dwSize);
FILE *fp = fopen(“2.jpg““wb“);
fwrite(pDatadwSize1fp);
fclose(fp);

free(in_Y);
free(in_U);
free(in_V);
free(pData);
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2011-05-09 14:42  yuv2jpg_linux\
     文件        1288  2011-05-09 14:37  yuv2jpg_linux\test.c
     文件       19948  2011-05-09 14:37  yuv2jpg_linux\yuv2jpg
     文件       20056  2011-05-09 13:37  yuv2jpg_linux\yuv2jpg.c
     文件        7250  2011-05-06 16:49  yuv2jpg_linux\yuv2jpg.h

评论

共有 条评论