我知道将BMP加载在一个IMAGE控件上,然后可以读其对应点的值,但我现在想知道,如何才能直接从BMP图中读来。我想这样可能会方便些

解决方案 »

  1.   

    var i:tcolor;
    i := image1.Picture.Bitmap.Canvas.Pixels[100,100]
      

  2.   

    看我的这个有参考价值吗?分离每点的颜色,但是现在对256色位图不好用,有知道解决256色的请给点意见!
    procedure TForm1.Button1Click(Sender: TObject);
    var
      prgb:PRGBArraye;
      IM : TImage;
      tmp:string;
    begin
     im:=TImage.Create(self);
     im.Picture.Bitmap.LoadFromFile('C:\My Documents\r256.bmp');
      IF im.Picture.Bitmap.PixelFormat <> pf24bit
        THEN showmessage('GetImageSpace:  ' +
                   'Bitmap must be 24-bit color.');  prgb:=im.Picture.Bitmap.ScanLine[10];  edit2.text:inttostr(prgb[1].rgbtGreen);
      edit2.Text:=inttostr(prgb[1].rgbtGreen);
      edit3.Text:=inttostr(prgb[1].rgbtRed);  case im.picture.bitmap.pixelformat of
        pf8bit : tmp:='8位';
        pf24bit: tmp:='24位';
        pfCustom : tmp:='自定义';
       end;  edit4.text := tmp;
       im.free;end;