在读取bmp文件时,我只想读出其中的纯的像素点数据,其它的头信息不需要,请问如何实现

解决方案 »

  1.   

    文件偏移35h之后的就是你要的数据,就是出去前35个字节,每3个字节表示一个24位颜色,按照rgb顺序排列,最后2个字节(或者3个,不敢肯定)是结尾标记
      

  2.   

    我要的是bmp16的像素点数据,不含调色板信息
      

  3.   

    呵呵,给你个笨办法,把它装载到一个Canvas上,然后读Canvas上点的颜色。
      

  4.   

    分析一下BMP文件头,网上有这方面的内容,文件头内包含了文件说明、图象尺寸、调色板等信息,重新定位后可直接读出每个象素点值,对于24位图象,则没有调色板信息
      

  5.   

    Type  
      TByteArray = Array[Word] of Byte;  //Delphi自带的ByteArray不好用
      pByteArray = ^TByteArray;procedure TForm1.Button1Click(Sender: TObject);
    Var
      Bmp: TBitmap;
      A:pByteArray;
      i: integer;
    begin
      Bmp:=Image1.Picture.Bitmap;
      A:=Bmp.ScanLine[20];
      For i:=10 To 100 do
        A[i]:=100;
    end;这个是最简单的读写方法。
    可以依照Bmp的PixelFormat属性定义 Array Of (RGB/RGBA/...)