ImageEn, unit imageenio

TImageEnIO.ImportMetafile

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 DefEMFBackgroundColor


Examples

// Import vectorial image 'alfa.wmf', resizing to 500xHHH (HHH is autocalculated)
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 );