+ -
当前位置:首页 → 问答吧 → 高分求BMP的简单操作

高分求BMP的简单操作

时间:2011-11-03

来源:互联网

假如我知道一BMP图片的名字如:1.bmp 如何把这张图片(1.bmp)读进来并保存它的基本信息(如,长度,宽度,各像素)。用这个函数实现

void ReadImage(char *ImageFileName, char *oImage,int wImage, int hImage); //读取图像信息并保存在oImage中,wImage放宽度,hImage放长度

作者: w835369950   发布时间: 2011-11-03

你的函数参数不对,int wImage, int hImage 只能传入,不能传出

看一下bmp文件格式然后自己写吧,不难的:
网上也能搜到很多代码的,还是自己写一遍比较好。


1. bmp图象
   · 位图文件头(BITMAPHEADER)数据结构
   · 位图信息(BITMAPINFO)数据结构
   · 位图阵列

  1)位图文件头数据结构包含BMP图象文件的类型、显示内容等信息。
  Typedef struct{
      Int bfType; //must be "BM"
      Long bfSize; //位图大小
      Int bfReserved1;//must be "0"
      Int bfReserved2;//must be "0"
      Long bfOffBits;//位图阵列的起始位置
  }BITMAPEFILEHEADER;

  2)位图信息数据结构由BITMAPINFOHEADER和RGBQUAD两个数据结构组成,
  typedef struct{
      BITMAPINFOHEADER bmiHeader;
      RGBQUAD bmiColors[];
  }BITMAPINFO

  其中BITMAPINFOHEADER数据结构包含了有关BMP图象的宽、高、压缩方法等信息。
  数据结构RGBQUAD定义一种颜色。

  3)位图阵列
  位图阵列记录了图象的每一个象素值。从图象的左下角开始逐行扫描图象。从左到右,从上到下,将图象的象素值逐一记录下来,这些记录象素值的字节组成了位图阵列。
  位图阵列数据的存储格式有压缩和非压缩两种格式。
  1. 非压缩格式 位图中的每一个点的象素值对应与位图阵列的若干位,而位图阵列的若干位由图象的高度、宽度及图象的颜色数决定。
  2. 压缩格式 在bmp格式文件中,Windows支持BI-RLE8和BI-RLE4两种压缩类型的存储格式。

作者: oo   发布时间: 2011-11-04

热门下载

更多