Gut regergiert, Sherlock!
eine interessante Funktion
Ich hab das mal für normale Bitmaps (testweise) umgestrickt:
Delphi-Quellcode:
procedure ResizeImage(Bitmap: TBitmap; NewWidth:Integer);
var
WICImage : TWICImage;
WICBitmap: IWICBitmap;
scale : IWICBitmapScaler;
newHeight: Integer;
faktor : Double;
begin
If not Assigned(Bitmap) then
exit;
WICImage := TWICImage.Create;
WICImage.Assign(Bitmap);
try
faktor := NewWidth / WICImage.Width;
newHeight := round(WICImage.Height * faktor);
WICImage.ImagingFactory.CreateBitmapScaler(scale);
scale.Initialize(WICImage.Handle, NewWidth, NewHeight, WICBitmapInterpolationModeFant);
WICImage.ImagingFactory.CreateBitmapFromSourceRect(scale, 0,0,NewWidth, NewHeight, WICBitmap);
If Assigned(WICBitmap) then
WICImage.Handle := WICBitmap;
Bitmap.Assign(WICImage);
finally
// WICImage.Free;
end;
end;
mfg
Helmi
>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<