首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

[求助]ZIP FILING SYSTEM(急..急...急)

[求助]ZIP FILING SYSTEM(急..急...急)

知道有没有哪位仁兄有做过从只读文件系统中读取BMP图象信息,我已经创建了非压缩的BMP文件-picturea,但是在读取BMP文件参数的时候出现了错误,原程序如下,请大侠们指教...


#include <stdio.h>
#include <stddef.h>
#include <system.h>
#include <stdlib.h>
#include "altera_avalon_lg_lcd_controller_regs.h"


/*===============bmp文件读写操作================*/


typedef struct 
  {  int bfType;
     long bfSize;
     int bfReserved1;
     int bfReserved2;
     long bfOffBits;
  } BITMAPFILEHEADER;


typedef struct
  {  long biSize;
     long biWidth;
     long biHighth;
     int biPlanes;
     int biBitCount;
     long biCompress;
     long biSizeImage;
     long biXPelsPerMeter;
     long biYPelsPerMeter;
     long biClrUsed;
     long biClrImportant;
  } BITMAPINFOHEADER;


 void main()
{
  FILE* fp =  NULL;
   /*short* frameBuffer1;*/
 /* short* frameBuffer2;*/
 /* frameBuffer1 = &SDRAM_BASE ;*/
 /* frameBuffer2 = & (SDRAM_BASE + 0XFF0000);*/
  BITMAPFILEHEADER FileHeader;
  /*
   * Open and print contents of ZipFS file 1.
   */
  printf("Reading file 'picturea.bmp' from ZipFS...");
  printf("sizeof(BITMAPFILEHEADER)=%d\n",sizeof(BITMAPFILEHEADER));
  
  fp  = fopen ("/mnt/rozipfs/picturea.bmp", "rb");
  if (fp == NULL)
  {
    printf ("Cannot open file.\n");
    exit (1);
  }
      
    fread(&FileHeader,1,sizeof(BITMAPFILEHEADER),fp);


      printf("FileHeader.bfType=%X\n",FileHeader.bfType);
      printf("FileHeader.bfSize=%ld\n",FileHeader.bfSize);
      printf("FileHeader.bfReserved1=%d\n",FileHeader.bfReserved1);
      printf("FileHeader.bfReserved2=%d\n",FileHeader.bfReserved2);
      printf("FileHeader.bfOffBits=%ld\n",FileHeader.bfOffBits);
  
  fclose(fp);
  }


以下是调试结果:


Reading file 'picturea.bmp' from ZipFS...
sizeof(BITMAPFILEHEADER)=20
FileHeader.bfType=84364D42
FileHeader.bfSize=3
FileHeader.bfReserved1=3538944
FileHeader.bfReserved2=2621440
FileHeader.bfOffBits=20971520


很明显FileHeader.bfType=84364D42是错的,因为我读取的是BMP图象格式,返回值应该是4D42才是,下面的几组数据也错了,我不知道为什么,请高手们指教......

请各位多多指教!!
不太懂 ,帮你顶一下!!!
我不是高手
返回列表