public static RasterImage FromHBitmap(IntPtr hbitmap,IntPtr hpalette)
hbitmap
Handle to the Windows DDB.
hpalette
Handle to the Windows palette. This value can be IntPtr.Zero if the DDB is dependent on a device that is greater than 8 bits, or if the image will use the system palette.
The newly create Leadtools.RasterImage object.
For more information on DDBs, DIBs, GDI, and GDI+ 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;[DllImport("gdi32")]private static extern IntPtr CreatePalette(LOGPALETTE256 lplgpl);[DllImport("gdi32")]private static extern bool DeleteObject(IntPtr hObject);[StructLayout(LayoutKind.Sequential, Pack = 1)]private class LOGPALETTE256{public short palVersion;public short palNumEntries;[MarshalAs(UnmanagedType.ByValArray, SizeConst = 1024)]public byte[] palPalEntry;}public void FromHBitmapExample(){RasterCodecs codecs = new RasterCodecs();// load image as 8-bitusing (RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp"), 8, CodecsLoadByteOrder.Rgb, 1, 1)){IntPtr hbitmap = IntPtr.Zero;hbitmap = RasterImageConverter.ToHBitmap(image);RasterColor[] colors;using (Bitmap btmp = new Bitmap(1, 1)){using (Graphics g = Graphics.FromImage(btmp)){colors = RasterImagePainter.GetPaintColors(image, g);}}IntPtr hPalette = IntPtr.Zero;if (colors != null && colors.Length <= 256){LOGPALETTE256 log = new LOGPALETTE256();log.palVersion = 0x300;log.palNumEntries = (short)colors.Length;log.palPalEntry = new byte[1024];int index = 0;for (int i = 0; i < colors.Length; i++){log.palPalEntry[index++] = colors[i].R;log.palPalEntry[index++] = colors[i].G;log.palPalEntry[index++] = colors[i].B;log.palPalEntry[index++] = 0;}hPalette = CreatePalette(log);}using (RasterImage destinationImage = RasterImageConverter.FromHBitmap(hbitmap, hPalette)){codecs.Save(destinationImage, Path.Combine(LEAD_VARS.ImagesDir, "Image1_FromHBitmap.bmp"), RasterImageFormat.Bmp, 0);}if (hPalette != IntPtr.Zero){DeleteObject(hPalette);}DeleteObject(hbitmap);}codecs.Dispose();}static class LEAD_VARS{public const string ImagesDir = @"C:\LEADTOOLS22\Resources\Images";}