• 大小: 1.33MB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2023-10-30
  • 语言: 其他
  • 标签: RAW  位图  

资源简介

接收原始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


评论

共有 条评论