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 | | | | | | |
| Demos\InputOutput\BatchConvert\BatchConvert.dpr |
// 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 );