• 大小: 4KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-05-14
  • 语言: C/C++
  • 标签: raw  bmp  转换  C程序  

资源简介

RAW转换 为BMP 格式文件的C语言程序

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 

#define H 512
#define W 512
void main()
{
 //char filename[50];
    BYTE* image1=new BYTE[H*W];                 
 BYTE* image2=new BYTE[H*W];

 BITMAPFILEHEADER* fileheader;                
 BITMAPINFOHEADER* infoheader;
 unsigned int FHlen=sizeof(BITMAPFILEHEADER);
 unsigned int IHlen=sizeof(BITMAPINFOHEADER);

 //灰度图,调色板数据,由于图像为8位,所以有256个数据项
 RGBQUAD* rgbquad;  
 int PaletteEntries=1<<8;               
 rgbquad=new RGBQUAD[PaletteEntries];
 for(int i=0;i 
 {
  rgbquad[i].rgbRed =i;               //红色的亮度(值为0~255)
  rgbquad[i].rgbGreen =i;             //绿色
  rgbquad[i].rgbBlue =i;              //蓝色
  rgbquad[i].rgbReserved =0;          //保留,无用。
 }
 
 //位图信息头结构
 infoheader=new BITMAPINFOHEADER ;
 memset(infoheader0IHlen);               //将infoheader中的前IHlen字节设置为0;
 infoheader->biSize =40;                   //本结构所占字节数,信息头共40字节。
 infoheader->biWidth =W;                   //位图的宽度。
 infoheader->biHeight =H;                  //位图的高度。
 infoheader->biPlanes =1;                  //目标设备的级别,必须为1。
 infoheader->biBitCount =8;                //每个像素所需的位数,8即256色。
 infoheader->biCompression =0;        //位图压缩类型,BI_RGB为不压缩型。
 infoheader->biSizeImage =H*W;             //位图的大小。
    infoheader->biXPelsPerMeter =2834;
 infoheader->biYPelsPerMeter =2834;

 //位图文件头结构
 fileheader=new BITMAPFILEHEADER;                                     
 memset(fileheader0FHlen);                                           //将fileheader中的前FHlen字节设置为0;
 fileheader->bfType =0x4D42;                                           //位图文件的类型,必须为BM。
 fileheader->bfSize =FHlen+IHlen+sizeof(RGB

评论

共有 条评论