Leadtools Send comments on this topic. | Back to Introduction - All Topics | Help Version 16.5.9.25
ChangeFromEmf Method
See Also  Example
Leadtools Namespace > RasterImage Class : ChangeFromEmf Method



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.
Changes a Windows enhanced metafile (EMF) into a LEAD RasterImage object and, if successful, frees the enhanced metafile.

Syntax

Visual Basic (Declaration)  
Public Shared Function ChangeFromEmf( _
   ByVal hemf As IntPtr, _
   ByVal width As Integer, _
   ByVal height As Integer _
) As RasterImage
Visual Basic (Usage) Copy Code
Dim hemf As IntPtr
Dim width As Integer
Dim height As Integer
Dim value As RasterImage
 
value = RasterImage.ChangeFromEmf(hemf, width, height)
C#  
public static RasterImage ChangeFromEmf( 
   IntPtr hemf,
   int width,
   int height
)
C++/CLI  
public:
static RasterImage^ ChangeFromEmf( 
   IntPtr hemf,
   int width,
   int 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 RasterImage object.

Example

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

Visual Basic Copy Code
Public Sub ChangeFromEmfExample()
   RasterCodecs.Startup()
   Dim codecs As New RasterCodecs()

   ' Load an image
   Dim image As RasterImage = codecs.Load(LeadtoolsExamples.Common.ImagesPath.Path + "Image1.cmp", 24, CodecsLoadByteOrder.BgrOrGray, 1, 1)

   ' Change to EMF
   Dim hemf As IntPtr = image.ChangeToEmf()
   image.Dispose()

   ' Convert the EMF back to a RasterImage preserving the size
   image = RasterImage.ChangeFromEmf(hemf, 0, 0)

   ' Save it to disk
   codecs.Save(image, LeadtoolsExamples.Common.ImagesPath.Path + "Image1_ChangeToEmf.bmp", RasterImageFormat.Bmp, 24)

   image.Dispose()

   ' Clean up
   codecs.Dispose()
   RasterCodecs.Shutdown()
End Sub
C# Copy Code
public void ChangeFromEmfExample() 

   RasterCodecs.Startup(); 
   RasterCodecs codecs = new RasterCodecs(); 
 
   // Load an image 
   RasterImage image = codecs.Load(LeadtoolsExamples.Common.ImagesPath.Path + "Image1.cmp", 24, CodecsLoadByteOrder.BgrOrGray, 1, 1); 
 
   // Change to EMF 
   IntPtr hemf = image.ChangeToEmf(); 
   image.Dispose(); 
 
   // Convert the EMF back to a RasterImage preserving the size 
   image = RasterImage.ChangeFromEmf(hemf, 0, 0); 
 
   // Save it to disk 
   codecs.Save(image, LeadtoolsExamples.Common.ImagesPath.Path + "Image1_ChangeToEmf.bmp", RasterImageFormat.Bmp, 24); 
 
   image.Dispose(); 
 
   // Clean up 
   codecs.Dispose(); 
   RasterCodecs.Shutdown(); 
}

Remarks

If this function 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 function does not support signed images.

Requirements

Target Platforms: Microsoft .NET Framework 3.0, Windows XP, Windows Server 2003 family, Windows Server 2008 family

See Also