←Select platform

ChangeFromEmf(IntPtr,int,int) Method

Summary
Changes a Windows Enhanced Metafile (EMF) into a LEADTOOLS Leadtools.RasterImage object and, if successful, frees the Enhanced Metafile.
Syntax
C#
C++/CLI
Python
public static RasterImage ChangeFromEmf( 
   IntPtr hemf, 
   int width, 
   int height 
) 
public: 
static RasterImage^ ChangeFromEmf(  
   IntPtr hemf, 
   int width, 
   int height 
)  
def ChangeFromEmf(self,hemf,width,height): 

Parameters

hemf
Handle to the EMF to be changed.

width
Amount by which to scale the enhanced metafile's original width.

height
Amount by which to scale the enhanced metafile's original height.

Return Value

The newly created Leadtools.RasterImage object.

Remarks

Some metafiles do not have a background color, and hence, when the metafile is used to create a Leadtools.RasterImage object, the area not covered by the metafile objects will contain the default image background color (black). To create a raster image from a metafile like this with a specific background color, use ChangeFromEmf(hemf, width, height, backColor).

If this method is successful,  hemf is freed.

The enhanced metafile can be loaded at the original dimension or scaled by using the  width and  height parameters.

If  width == 0 and  height == 0 - the enhanced metafile is loaded at the size present in the file.

If  width == 0 and  height > 0 - the enhanced metafile is stretched so that it has the height  height (preserving the aspect ratio).

If  width > 0 and  height == 0 - the enhanced metafile is stretched so that it has the width  width (preserving the aspect ratio).

If  width > 0 and  height > 0 - the enhanced metafile is stretched so that it has the width  width and height  height (the aspect ratio is ignored).

This method does not support signed images.

For more information refer to RasterImage and GDI/GDI+.

Example

This example loads a Leadtools.RasterImage, converts it to an EMF, then converts the EMF back to a Leadtools.RasterImage.

C#
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.Drawing; 
using Leadtools.ImageProcessing; 
using Leadtools.ImageProcessing.Color; 
 
 
public void ChangeFromEmfExample() 
{ 
   RasterCodecs codecs = new RasterCodecs(); 
 
   IntPtr hemf; 
 
   // Load an image 
   using (RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp"), 24, CodecsLoadByteOrder.BgrOrGray, 1, 1)) 
   { 
      // Change to EMF 
      hemf = RasterImageConverter.ChangeToEmf(image); 
   } 
 
   // Convert the EMF back to a RasterImage preserving the size 
   using (RasterImage image = RasterImageConverter.ChangeFromEmf(hemf, 0, 0)) 
   { 
      // Save it to disk 
      codecs.Save(image, Path.Combine(LEAD_VARS.ImagesDir, "Image1_ChangeToEmf.bmp"), RasterImageFormat.Bmp, 24); 
   } 
 
   // Clean up 
   codecs.Dispose(); 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images"; 
} 
Requirements

Target Platforms

Help Version 23.0.2024.2.29
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2024 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Drawing Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.