public static RasterImage ChangeFromHBitmap(
IntPtr hdc,
IntPtr hbitmap,
IntPtr hpalette
)
hdc
Handle to the device responsible for the conversion. The mapping mode of the device context must be MM_TEXT.
hbitmap
Handle to the DDB to be changed.
hpalette
Handle to the palette. This value can be IntPtr.Zero if the hdc parameter refers to a device that is greater than 8 bits, or if the bitmap will use the system palette.
The newly create Leadtools.RasterImage object.
This method results in only one copy of the image, and it invalidates the DDB (hbitmap) handle.
For more information on DDBs and DIBs, refer to Using DIBs, DDBs, and the Clipboard and RasterImage and GDI/GDI+.
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Drawing;
using Leadtools.ImageProcessing;
using Leadtools.ImageProcessing.Color;
public void ChangeToHBitmapExample()
{
RasterCodecs codecs = new RasterCodecs();
IntPtr hbitmap;
// Load an image
using (RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp"), 24, CodecsLoadByteOrder.BgrOrGray, 1, 1))
{
// Change to DDB
hbitmap = RasterImageConverter.ChangeToHBitmap(image);
// Dispose the image since it is unusable now
}
// Change the DDB to a new LEAD RasterImage
using (RasterImage image = RasterImageConverter.ChangeFromHBitmap(hbitmap, IntPtr.Zero))
{
// Save this image back to disk
codecs.Save(image, Path.Combine(LEAD_VARS.ImagesDir, "Image1_ChangeToHBitmap.bmp"), RasterImageFormat.Bmp, 24);
}
DeleteObject(hbitmap);
// Clean up
codecs.Dispose();
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images";
}