資源簡介
在linux下從yuv轉(zhuǎn)jpg的轉(zhuǎn)換,沒有調(diào)用jpeg庫,適合嵌入式開發(fā),沒有調(diào)用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);
}
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????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
評論
共有 條評論