Hallo
Weiß jemand einen Link für einen guten Algorithmus
zum vergrößern verkleinern einer Bitmap.
Delphi-Quellcode:
function ResizeBitmap(_Bitmap : TBitmap; const maxWidth, maxHeight : integer) : boolean;
var
thumbnail : TBitmap;
thumbRect : TRect;
begin
try
thumbnail := TBitmap.Create;
thumbRect.Left := 0;
thumbRect.Top := 0;
thumbnail.Assign(_Bitmap);
//proportional resize
if thumbnail.Width > thumbnail.Height then
begin
thumbRect.Right := maxWidth;
thumbRect.Bottom := (maxWidth * thumbnail.Height) div thumbnail.Width;
end
else
begin
thumbRect.Bottom := maxHeight;
thumbRect.Right := (maxHeight * thumbnail.Width) div thumbnail.Height;
end;
thumbnail.Canvas.StretchDraw(thumbRect, thumbnail) ;
//resize image
thumbnail.Width := thumbRect.Right;
thumbnail.Height := thumbRect.Bottom;
//display in a TImage control
Form4.Im.Picture.Assign(nil);
thumbnail.SaveToFile('d:\zz.bmp');
Form4.Im.Picture.Assign(thumbnail);
finally
thumbnail.Free;
end;
end;
Habe dies im Netz gefunden mit beschränkten
"Antialiasing" Ergebnis.