Tema de Transparencia TGifImage

Estoy usando TGifImage que se incluye con Delphi XE.

Lo que estoy tratando de hacer es cargar un archivo GIF de un archivo y extraer todos los marcos a un mapa de bits.

Esto es lo que hice hasta ahora:

procedure ExtractGifFrames(FileName: string);
var
  Gif: TGifImage;
  Bmp: TBitmap;
  i: Integer;
begin
  Gif := TGifImage.Create;
  try
    Gif.LoadFromFile(FileName);

    Bmp := TBitmap.Create;
    try
      Bmp.SetSize(Gif.Width, Gif.Height);

      for i := 0 to Gif.Images.Count - 1 do
      begin
        if not Gif.Images[i].Empty then
        begin
          Bmp.Assign(Gif.Images[i]);
          Bmp.SaveToFile('C:\test\bitmap' + IntToStr(i) + '.bmp');
        end;
      end;
    finally
      Bmp.Free;
    end;
  finally
    Gif.Free;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if OpenPictureDialog1.Execute then
  begin
    ExtractGifFrames(OpenPictureDialog1.FileName);
  end;
end;

El problema al que me estoy enfrentando es con un problema de transparencia con muchos Gifs diferentes y también con problemas de tamaño.

Aquí hay algunos ejemplos de mapas de bits que se guardaron usando mi código anterior:

Como puede ver, los resultados no son excelentes, tienen problemas de tamaño y transparencia.

Sé que los archivos GIF en sí no están dañados, porque puedo cargarlos a través de mi navegador web y se muestran correctamente sin fallas.

¿Cómo puedo cargar un archivo GIF desde un archivo, asignar cada cuadro a Bitmap sin perder ninguna calidad?

Respuestas a la pregunta(2)

Su respuesta a la pregunta