資源簡介
接收原始RAW
圖像數據并將其轉換為位圖,
代碼片段和文件信息
#include?
#include?
#include?
#include?
#define?H?15004
#define?W?4160
void?main()
{
char?filename[50];
????WORD*?image1=new?WORD[H*W];
BYTE*?image2=new?BYTE[H*W];
BITMAPFILEHEADER*?fileheader;
BITMAPINFOHEADER*?infoheader;
unsigned?int?FHlen=sizeof(BITMAPFILEHEADER);
unsigned?int?IHlen=sizeof(BITMAPINFOHEADER);
//調色板數據,由于圖像為10位,所以有1024個數據項
RGBQUAD*?rgbquad;???
int?PaletteEntries=1<<8;
rgbquad=new?RGBQUAD[PaletteEntries];
for(int?i=0;i {
rgbquad[i].rgbRed?=i;
rgbquad[i].rgbGreen?=i;
rgbquad[i].rgbBlue?=i;
rgbquad[i].rgbReserved?=0;
}
//位圖信息頭結構
infoheader=new?BITMAPINFOHEADER?;
memset(infoheader0IHlen);
infoheader->biSize?=40;
infoheader->biWidth?=W;
infoheader->biHeight?=H;
infoheader->biPlanes?=1;
infoheader->biBitCount?=8;
infoheader->biCompression?=BI_RGB;
infoheader->biSizeImage?=H*W;
//位圖文件頭結構
fileheader=new?BITMAPFILEHEADER;
memset(fileheader0FHlen);
fileheader->bfType?=0x4D42;
fileheader->bfSize?=FHlen+IHlen+sizeof(RGBQUAD)*PaletteEntries+H*W;
fileheader->bfOffBits=FHlen+IHlen+sizeof(RGBQUAD)*PaletteEntries;
//讀取RAW圖像文件的數據到數組image1中
cout<<“請輸入要打開的文件:“< cin>>filename;
FILE?*fp;
if((fp=fopen(filename“rb“))==0)//輸入要打開的文件
{
cout<<“Cannot?open?filepush?any?key!“< getchar();
return;
}
//fseek(fp1078L0);
fread(image1sizeof(WORD)H*Wfp);
fclose(fp);
for(i=0;i for(int?j=0;j {
image2[i*W+j]=(image1[(H-1-i)*W+j]*256)/1024;
}
cout<<“********************************************************************************“< FILE?*fp1;
cout<<“請輸入要保存的文件名:“< cin>>filename;
if((fp1=fopen(filename“wb“))==0)//輸入要打開的文件
{
cout<<“Cannot?open?file“< getchar();
return;
}
fwrite(fileheader1FHlenfp1);
fwrite(infoheader1IHlenfp1);
fwrite(rgbquadsizeof(RGBQUAD)256fp1);
fwrite(image2sizeof(BYTE)H*Wfp1);
fclose(fp1);
cout< cout<<“********************************************************************************“< cout<<“文件已保存,感謝使用!“< ????
delete[]?image1;
delete[]?image2;
delete[]?rgbquad;
delete?fileheader;
delete?infoheader;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????217184??2009-09-03?17:16??RawToBmp\Debug\RawToBmp.exe
?????文件?????253124??2009-09-03?17:16??RawToBmp\Debug\RawToBmp.ilk
?????文件??????18508??2009-09-03?17:16??RawToBmp\Debug\RawToBmp.obj
?????文件????3618564??2009-09-03?17:16??RawToBmp\Debug\RawToBmp.pch
?????文件?????558080??2009-09-03?17:16??RawToBmp\Debug\RawToBmp.pdb
?????文件?????140288??2009-09-21?16:23??RawToBmp\Debug\vc60.idb
?????文件??????86016??2009-09-03?17:16??RawToBmp\Debug\vc60.pdb
?????目錄??????????0??2009-10-13?14:32??RawToBmp\Debug
?????文件???????2400??2009-08-17?16:32??RawToBmp\RawToBmp.cpp
?????文件???????4308??2009-08-13?08:42??RawToBmp\RawToBmp.dsp
?????文件????????541??2009-08-13?08:37??RawToBmp\RawToBmp.dsw
?????文件??????41984??2009-10-12?16:44??RawToBmp\RawToBmp.ncb
?????文件?????446976??2009-10-12?16:44??RawToBmp\RawToBmp.opt
?????文件???????1319??2009-09-03?17:16??RawToBmp\RawToBmp.plg
?????目錄??????????0??2009-10-13?17:03??RawToBmp
-----------?---------??----------?-----??----
??????????????5389292????????????????????15
- 上一篇:USB協議數字視頻傳輸的研究與實現
- 下一篇:反本能+深度思維+個體賦能套裝共3冊
評論
共有 條評論