ImageEn, unit iexBitmaps

TIEBitmap.Resample

TIEBitmap.Resample


Declaration

procedure Resample(NewWidth, NewHeight: integer; FilterType: TResampleFilter = rfNone; MaintainAspectRatio: Boolean = False; ShrinkOnly: Boolean = False); overload;
procedure Resample(ScaleBy: Double; FilterType: TResampleFilter = rfNone); overload;


Description

Resizes the current image. The content of the image changes (stretched to the new size).

Parameter Description
NewWidth New image width in pixels. If NewWidth is -1 then it is calculated automatically, respecting the proportions
NewHeight New image height in pixels. If NewHeight is -1 then it is calculated automatically, respecting the proportions
FilterType Resampling interpolation algorithm
MaintainAspectRatio Automatically reduces NewWidth or NewHeight to ensure the original proportions of the image are maintained
ShrinkOnly If true and the new dimensions would enlarge the image, the resampling as skipped

Supported filters by PixelFormat:
Filter ie1g ie8g ie16g ie24RGB ie32RGB ie48RGB
rfNone                  
rfTriangle                  
rfHermite                  
rfBell                  
rfBSpline                  
rfLanczos3                  
rfMitchell                  
rfNearest                  
rfLinear                  
rfFastLinear                  
rfBilinear                  
rfBicubic                  
rfProjectBW                  
rfProjectWB                  
rfWICNearestNeighbor                  
rfWICLinear                  
rfWICCubic                  
rfWICFant                  
rfWICCubicHQ                  


Demo

Demo  Demos\InputOutput\BatchConvert\BatchConvert.dpr


Examples

// Resize the image to width of 50 (with height automatically set) without any smoothing algorithm
ABitmap.Resample( 50, -1, rfNone );

// Resize the image to height of 100 (with width automatically calculated) and high quality smoothing
ABitmap.Resample( -1, 100, rfLanczos3 );

// Resize the image so that it is no higher or wider than 100, but maintains the original aspect ratio (e.g. a 4:3 portrait image would have the new dimensions 100 x 75)
ABitmap.Resample( 100, 100, rfLanczos3, True );

// Resize the image to half its current size with fast, but good quality smoothing
ABitmap.Resample( 0.5, rfFastLinear );