public static IntPtr ToWmf(
RasterImage image
)
image
The source image.
A handle to the Windows metafile (WMF) this method creates.
When this method is completed, there are two copies of the drawing in memory: the WMF and the original Leadtools.RasterImage object. Freeing one will not affect the other.
This method allocates an metafile bitmap and copies the Leadtools.RasterImage data to the Metafile.
When you no longer need the metafile, you can free it using the Windows DeleteMetaFile 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 DeleteMetaFile(IntPtr hwmf);
public void FromWmfExample()
{
RasterCodecs codecs = new RasterCodecs();
IntPtr hwmf;
// Load an image
using (RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp"), 24, CodecsLoadByteOrder.BgrOrGray, 1, 1))
{
// Convert it to WMF
hwmf = RasterImageConverter.ToWmf(image);
// Note, since we converted to an WMF we have two copies of the image in memory and "image" is still usable
}
// Convert the WMF back to a RasterImage preserving the size
using (RasterImage image = RasterImageConverter.FromWmf(hwmf, 0, 0))
{
// Not since we converted from the WMF, we need to delete it ourselves
DeleteMetaFile(hwmf);
// Save it to disk
codecs.Save(image, Path.Combine(LEAD_VARS.ImagesDir, "Image1_FromWmf.bmp"), RasterImageFormat.Bmp, 24);
}
// Clean up
codecs.Dispose();
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS22\Resources\Images";
}