5

80x40 ピクセルの gif 画像があります。この画像のカラー パレットは、パレット内の番号が異なるいくつかの類似した色で構成されています。x,yセルがパレット内の色の数になる2次元配列を作成するにはどうすればよいですか?

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 に答える