var
    TPixels: Array of Array of TRGBTriple;procedure ReadPixel(LocalBmp:TBitmap);
var
  PixPtr: PbyteArray;
  i,j,m: Integer;
begin
  SetLength(TPixels,LocalBmp.Width,LocalBmp.Height);
  LocalBmp.PixelFormat:=pf24bit;
  LocalBmp.HandleType:=bmDIB;
  for i:=0 to LocalBmp.Height-1  do
    begin
      PixPtr:=LocalBmp.ScanLine[i];
      for j:=0 to LocalBmp.Width-1  do
        begin
           m:=j*3;
           TPixels[j,i].rgbtBlue:=PixPtr[m];
           TPixels[j,i].rgbtGreen:=PixPtr[m+1];
           TPixels[j,i].rgbtRed:=PixPtr[m+2];
             form1.Memo1.Lines.Add(TPixels[j,i]);
         end;
     end;
end;我想把一个图片的像素存在一个二维数组中,上面的代码对吗?

解决方案 »

  1.   

    我想添加到memo1中,但是类型不兼容:'String’ and ‘tagRGBTRIPLE’,怎么解决?或者教教我怎么查像素
      

  2.   

    memo怎么能添加TRGBTriple类型呢,它需要字符串
      

  3.   

      tagRGBTRIPLE = packed record
        rgbtBlue: Byte;
        rgbtGreen: Byte;
        rgbtRed: Byte;
      end;
      TRGBTriple = tagRGBTRIPLE;
    可以把值转换成String存入Memo
      

  4.   


    请问上面的声明是添加到哪里?type?
      

  5.   


    type
      tagRGBTRIPLE = packed record
        rgbtBlue: Byte;
        rgbtGreen: Byte;
        rgbtRed: Byte;
    end;
    .....
    Var
     Form1:TForm;