5

我有一个 80x40 像素的 gif 图像。此图像的调色板由几个相似的颜色组成,这些颜色在调色板中有不同的数字。如何构建一个二维数组,其中单元格x,y将是调色板中的颜色编号?

4

2 回答 2

3

TGifImage 内置了这样一个数组,所以只需使用它:

var 
  Gif:TGifImage;
  PaletteIndex : byte;
begin
  Gif := TGifImage.Create;

  // ... load your stuff here ...

  // TGifImage has an Images property, which is probably only interesting if you're dealing with animations, so just take the first image.
  PaletteIndex := Gif.Images[0].Pixels[0,0]; // palette index for top-left pixel 

  // Now, to get the actual TColor for that pixel, you could do this:
  Self.color := Gif.Images[0].ColorMap.Colors[PaletteIndex];

end;
于 2013-07-07T13:02:55.270 回答
0

您可以将图像加载到TBitmap. 然后你可以使用ScanLine一个TBitmap类的属性。此索引属性采用基于 0 的行索引,并返回指向该行像素值的指针。查看此页面以了解有关ScanLine财产的更多信息。

于 2013-07-07T04:07:16.550 回答