1
TGifimage
アニメーションのサイズを次の手順で調整しようとしています。 問題なくサイズを変更できますが、アニメーションGIFの品質は非常に悪いです。TGifimageのサイズ変更
どのように品質を向上させることができますか?
現在、アニメーションGIFは黒く表示され、壊れて見えます。
procedure ResizeGif(Src, Dst: TGifImage; const newHeight, newWidth: integer);
var
bmp, bmp2: TBitmap;
gifren: TGIFRenderer;
I: integer;
begin
if (Src.Empty) or not assigned(Src.Images[0]) then
begin
exit;
end;
bmp := TBitmap.Create;
bmp2 := TBitmap.Create;
gifren := TGIFRenderer.Create(Src);
try
bmp.PixelFormat := pf24bit;
bmp2.PixelFormat := pf24bit;
bmp.Width := newWidth;
bmp.Height := newHeight;
for I := 0 to Src.Images.Count - 1 do
begin
bmp.SetSize(newWidth, newHeight);
gifren.Draw(bmp.Canvas, bmp.Canvas.ClipRect);
bmp2.SetSize(newWidth, newHeight);
bmp2.Canvas.StretchDraw(Rect(0, 0, newWidth, newHeight), bmp);
TGIFGraphicControlExtension.Create(Dst.add(bmp2)).Delay :=
gifren.FrameDelay div 10;;
gifren.NextFrame;
end;
TGIFAppExtNSLoop.Create(Dst.Images.Frames[0]).Loops := 0;
finally
bmp.free;
bmp2.free;
gifren.free;
end;
end;
あなたが他の質問は、アニメーションの問題についてではなかった、このすでに –
@DavidHeffernanを尋ねると、私は解決していなかったことをTrueにリサイズした画像のアニメーションを設定することで、この1品質についてです。 –
私たちは、どのサイズが関係しているかを推測することができます。ラスターイメージのサイズ変更は難しいです。時にはうまく行かないこともあります。画像データに合わせて適切なアルゴリズムを選択する必要があることがよくあります。 –