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로 크기가 조정 된 이미지 애니메이션을 설정하여,이 품질에 관한 것입니다 –
우리는 어떤 크기가 관련되어 있는지 짐작할 수 있습니다. 래스터 이미지의 크기를 조정하는 것은 어렵습니다. 가끔은 잘하는 것이 불가능합니다. 종종 이미지 데이터에 맞도록 올바른 알고리즘을 선택해야합니다. –