Здравствуйте. Не получается извлечь из анимированного GIF изображения, с исходными цветами и правильным размером.
Код был взят с DRKB и немного исправлен.
procedure TForm1.Button1Click(Sender: TObject);
var
i, a: integer;
bm: TBItmap;
GIF:TGifImage;
begin
a := 0;
bm := TBItmap.Create;
GIF:=TGifImage.Create;
Gif.LoadFromFile(Edit1.Text);
bm.Height := GIF.Height;
bm.Width := GIF.Images.Count * GIF.width;
for i := 0 to GIF.Images.Count - 1 do
begin
GIF.ForceFrame:=i;
bm.Canvas.Draw(a, 0, GIF.Images.SubImages[i].Bitmap);
a:=a+GIF.Width;
end;
bm.SaveToFile('horse.bmp');
bm.free;
Gif.Free;
end;
http://dump.ru/file/2892041
В архиве,исходный анимированный molnia.gif и извлеченные изображения в виде спрайтов в molnia.bmp . Цвета искажены и размер кадров почему-то разный.
Также в архиве,исходный анимированный horse.gif и извлеченные изображения в виде спрайтов в horse.bmp . Цвета искажены, но с размером кадров все в порядке...
Буду благодарен,если подскажите куда копать=)
з.ы. В архиве лежат исходники.