←Select platform

GetPaintHPalette Method

Summary

Returns a Windows palette handle corresponding to this Leadtools.RasterImage if painted on the given device context.

Syntax

C#
VB
C++
public static IntPtr GetPaintHPalette( 
   RasterImage image, 
   IntPtr hdc 
) 
Public Shared Function GetPaintHPalette( _ 
   ByVal image As Leadtools.RasterImage, _ 
   ByVal hdc As IntPtr _ 
) As IntPtr 
public: 
static IntPtr GetPaintHPalette(  
   Leadtools.RasterImage^ image, 
   IntPtr hdc 
)  

Parameters

image
The source image.

hdc
The device context object on which this Leadtools.RasterImage is painted.

Return Value

A Windows palette handle (HPALETTE). You must delete this palette with the Windows DeleteObject API after using it.

Remarks

For more information refer to RasterImage and GDI/GDI+.

For more information, refer to Handling Palette Changes.

Example

C#
VB
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.Drawing; 
using Leadtools.ImageProcessing; 
 
// Windows API 
[DllImport("Gdi32")] 
private static extern uint GetPaletteEntries(IntPtr hpal, uint nStartIndex, uint nNumEntries, [In, Out] byte[] colors); 
 
[DllImport("Gdi32")] 
private static extern int DeleteObject(IntPtr hObject); 
 
public void GetPaintHPaletteExample() 
{ 
   RasterCodecs codecs = new RasterCodecs(); 
   RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp"), 8, CodecsLoadByteOrder.Rgb, 1, 1); 
 
   IntPtr hpalette = RasterImagePainter.GetPaintHPalette(image, IntPtr.Zero); 
   if (hpalette != IntPtr.Zero) 
   { 
      // Show the pal 
 
      // 4 bytes for each color 
      byte[] colors = new byte[256 * 4]; 
      GetPaletteEntries(hpalette, 0, 256, colors); 
      int index = 0; 
      for (int i = 0; i < 256; i++) 
      { 
         Console.WriteLine("{0} - {1}, {2}, {3}", i, colors[index + 0], colors[index + 1], colors[index + 2]); 
         index += 4; 
      } 
 
      DeleteObject(hpalette); 
   } 
   else 
   { 
      Console.WriteLine("There is no palette"); 
   } 
 
   image.Dispose(); 
   codecs.Dispose(); 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; 
} 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.Drawing 
Imports Leadtools.ImageProcessing 
 
' Windows API 
<DllImport("Gdi32")> 
Private Shared Function GetPaletteEntries(ByVal hpal As IntPtr, ByVal nStartIndex As UInt32, ByVal nNumEntries As UInt32, <InAttribute(), Out()> ByVal colors() As Byte) As UInt32 
End Function 
 
<DllImport("Gdi32")> 
Private Shared Function DeleteObject(ByVal hObject As IntPtr) As Integer 
End Function 
 
Public Sub GetPaintHPaletteExample() 
   Dim codecs As New RasterCodecs() 
   Dim image As RasterImage = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp"), 8, CodecsLoadByteOrder.Rgb, 1, 1) 
 
   Dim hpalette As IntPtr = RasterImagePainter.GetPaintHPalette(image, IntPtr.Zero) 
   If hpalette <> IntPtr.Zero Then 
      ' Show the pal 
 
      ' 4 bytes for each color 
      Dim colors(256 * 4 - 1) As Byte 
      GetPaletteEntries(hpalette, 0, 256, colors) 
      Dim index As Integer = 0 
      For i As Integer = 0 To 255 
         Console.WriteLine("{0} - {1}, {2}, {3}", i, colors(index + 0), colors(index + 1), colors(index + 2)) 
         index = index + 4 
      Next 
 
      DeleteObject(hpalette) 
   Else 
      Console.WriteLine("There is no palette") 
   End If 
 
   image.Dispose() 
   codecs.Dispose() 
End Sub 
 
Public NotInheritable Class LEAD_VARS 
   Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" 
End Class 

Requirements

Target Platforms

Help Version 19.0.2017.10.27
Products | Support | Contact Us | Copyright Notices
© 1991-2017 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Drawing Assembly