| ImageEn, unit imageenproc |
|
TImageEnProc.Resample
Declaration
procedure Resample(NewWidth, NewHeight: Integer; FilterType: TResampleFilter = rfNone; MaintainAspectRatio: Boolean = False); overload;
procedure Resample(ScaleBy: Double; FilterType: TResampleFilter = rfNone); overload;
Description
Resizes the current image. Unlike
ImageResize, the content of the image will change (i.e. it is 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 |
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 | | | | | | |
Note: A UI for this is available to your users in the
Image Processing dialog
| Demos\ImageEditing\Resize\Resize.dpr |
| Demos\ImageEditing\CompleteEditor\PhotoEn.dpr |
| Demos\ImageEditing\EveryMethod\EveryMethod.dpr |
// Resize the image to width of 50 (with height automatically set) without any smoothing algorithm
ImageEnView1.Proc.Resample( 50, -1, rfNone );
// Resize the image to height of 100 (with width automatically calculated) and high quality smoothing
ImageEnView1.Proc.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)
ImageEnView1.Proc.Resample( 100, 100, rfLanczos3, True );
// Resize the image to half its current size with fast, but good quality smoothing
ImageEnView1.IO.LoadFromFile( 'D:\TestImage.jpg' );

ImageEnView1.Proc.Resample( 0.5, rfLanczos3 );

See Also
◼ResampleTo