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 | The resampling interpolation algorithm used to improve the quality. If you specify an incompatible algorithm for the pixel type an alternative will be automatically selected |
| 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 |
Note: For other image editing functions, you can use Proc
// 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 );