public static IntPtr ToEmf(
RasterImage image
)
image
The source image.
A handle to the Windows enhanced metafile (EMF) this method creates.
When this method is completed, there are two copies of the drawing in memory: the EMF and the original Leadtools.RasterImage object. Freeing one will not affect the other.
This method allocates an enhanced metafile bitmap and copies the Leadtools.RasterImage data to the enhanced Metafile.
When you no longer need the enhanced metafile, you can free it using the Windows DeleteEnhMetaFile function.
This method does not support signed images.
For more information refer to RasterImage and GDI/GDI+.
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Drawing;
using Leadtools.ImageProcessing;
using Leadtools.ImageProcessing.Color;
[DllImport("Gdi32", CharSet = CharSet.Auto)]
private static extern int DeleteEnhMetaFile(IntPtr hemf);
public void FromEmfExample()
{
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))
{
// Convert it to EMF
hemf = RasterImageConverter.ToEmf(image);
// Note, since we converted to an EMF we have two copies of the image in memory and "image" is still usable
}
// Convert the EMF back to a RasterImage preserving the size
using (RasterImage image = RasterImageConverter.FromEmf(hemf, 0, 0))
{
// Not since we converted from the EMF, we need to delete it ourselves
DeleteEnhMetaFile(hemf);
// Save it to disk
codecs.Save(image, Path.Combine(LEAD_VARS.ImagesDir, "Image1_FromEmf.bmp"), RasterImageFormat.Bmp, 24);
}
// Clean up
codecs.Dispose();
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS22\Resources\Images";
}