TImageEnIO.ImportMetafile
Declaration
function ImportMetafile(const FileName: WideString; Width, Height: Integer; WithAlpha: Boolean; BackgroundFill: TColor = clNone; MaintainAR: Boolean = False): Boolean;
function ImportMetafile(Stream: TStream; Width: Integer = -1; Height: Integer = -1; WithAlpha: boolean = True; BackgroundFill: TColor = clNone; MaintainAR: Boolean = False): Boolean;
function ImportMetafile(meta: TMetafile; Width: Integer = -1; Height: Integer = -1; WithAlpha: Boolean = True; BackgroundFill: TColor = clNone; MaintainAR: Boolean = False): Boolean;
function ImportMetafile(meta: TIEMetafile; Width: Integer = -1; Height: Integer = -1; WithAlpha: Boolean = True; BackgroundFill: TColor = clNone; MaintainAR: Boolean = False); Boolean;
Description
Imports a WMF or EMF vectorial image. If the file does not represent a valid image format, ImportMetafile raises an
EInvalidGraphic exception.
Width and
Height specify the image size (the rectangle where the vectorial image will be painted).
To maintain the image aspect ratio set only one size, assigning -1 to the other, e.g. ImportMetafile('axi.emf', -1, 500); or set both values and enable
MaintainAR.
If
WithAlpha is true then ImportMetaFile creates an alpha channel, making only the metafile content visible.
BackgroundFill specifies the fill for the non-content area of the image. If clNone is specified, the
Background color is used.
Notes:
- ImportMetafile converts the vectorial image to a raster image, so you must limit the rasterized image sizes. The maximum allowed size is specified by
MaxImageEMFSize and
MaxImageEMFMatrixSize- ImportMetafile should not be used in threads because it uses TCanvas. If thread loading is required call Synchronize() beforehand or limit the size of the returned image.
- If you use
LoadFromFile to load metafiles then the default settings are used, such as
EMFBackgroundColorExamples
// Import vectorial image 'alfa.wmf', resizing to 500xHHH (HHH is auto-calculated)
ImageEnView1.IO.ImportMetafile( 'C:\alfa.wmf', 500, -1, true, clWhite );
// We want a maximum imported image size of 1024 pixels (in either dimension) when loading EMF or WMF files
IEGlobalSettings().MaxImageEMFSize := 1024;
ImageEnView1.IO.ImportMetafile( 'C:\input.wmf' );
// Import with a solid white background
ImageEnView1.IO.ImportMetaFile( 'C:\input.wmf', -1, -1, False, clWhite );