Schon Mal probiert statt des WIC Bildes einfach eine
Linie auf diesen Bitmap Canvas zu zeichnen um zu testen,
dass so große Bitmaps überhaupt funktionieren?
Habe ich gerade mit einer 10.000 x 10.000 Bitmap probiert: Kein Problem.
Wenn ich die nachstehende Version mit dem guten alten ScaleImage verwende, klappt es auch ohne Probleme.
Delphi-Quellcode:
procedure TdlgMain.Button4Click(Sender: TObject);
var
Ratio: Double;
WICImage: tWICImage;
begin
WICImage := tWICImage.Create;
try
WICImage.LoadFromFile('
F:\Test\ResizeTest\DSF1789.TIF');
except
on E:
Exception do begin
ShowMsg(E.
Message, '
', mb_OK, mb_IconError);
WICImage.Free;
Exit;
end;
end;
if Assigned(BM)
then begin
BM.Assign(WICImage);
end;
WICImage.Free;
iTest2.Picture :=
Nil;
if iTest2.Height < iTest2.Width
then Ratio := iTest2.Height / BM.Height
else Ratio := iTest2.Width / BM.Width;
try
ScaleImage(BM, iTest2.Picture.Bitmap, Ratio);
except
Exit;
end;
iTest.Repaint;
end;