Converts all bitmaps in the bitmap list from any bits-per-pixel to any bits-per-pixel.


#include "ltwrappr.h"

L_INT LAnimationWindow::ColorResItems(nBitsPerPixel, uFlags, pPalette=NULL, hPalette=NULL, uColors=0)


L_INT nBitsPerPixel

The number of bits per pixel to increase or decrease the bitmaps to. Valid values are 1, 2, 3, 4, 5, 6, 7, 8, 16, 24, and 32

L_UINT32 uFlags

Flag that indicates the processing options. Note that the palette and dithering options are useful only when the resulting bitmaps require a palette (when they are 8 bits per pixel or less). You can combine values when appropriate by using a bitwise OR ( | ). Possible values are:

Value Meaning
CRF_FIXEDPALETTE [0x01] Use LEAD's fixed palette.
CRF_OPTIMIZEDPALETTE [0x02] Create an optimized palette.
CRF_NETSCAPEPALETTE [0x40] Use the fixed palette that is employed by Netscape Navigator and Microsoft Internet Explorer.
CRF_USERPALETTE [0x10] Use the palette specified in the pPalette parameter.
CRF_IDENTITYPALETTE [0x08] Insert the Windows system palette. You can combine this flag with CRF_OPTIMIZEDPALETTE.
CRF_FASTMATCHPALETTE [0x20] Use a predefined table to speed conversion using your own palette.
Refer to LBitmapSettings::CreateUserMatchTable.
CRF_BYTEORDERBGR [0x04] Use BGR color order. This flag only has meaning when going to 16 bits per pixel or higher.
CRF_BYTEORDERRGB [0x00] Use RGB color. This flag only has meaning when going to 16 bits per pixel or higher.
CRF_NODITHERING [0x00000000] Use nearest color matching.
CRF_FLOYDSTEINDITHERING [0x00010000] Use Floyd-Steinberg dithering.
CRF_STUCKIDITHERING [0x00020000] Use Stucki dithering.
CRF_BURKESDITHERING [0x00030000] Use Burkes dithering.
CRF_SIERRADITHERING [0x00040000] Use Sierra dithering.
CRF_STEVENSONARCEDITHERING [0x00050000] Use Stevenson Arce dithering.
CRF_JARVISDITHERING [0x00060000] Use Jarvis dithering.
CRF_ORDEREDDITHERING [0x00070000] Use ordered dithering, which is faster but less accurate than other dithering methods.
CRF_CLUSTEREDDITHERING [0x00080000] Use clustered dithering.


The custom palette to use. Specify this parameter as follows:


The custom palette to use. Specify this parameter as follows:

L_UINT uColors

The number of colors in the palette. Pass 0 to get the default (such as 256 for 8 bits per pixel). Otherwise, do one of the following:


Value Meaning
SUCCESS The function was successful.
< 1 An error occurred. Refer to Return Codes.


You can use this function to create an optimized palette for all bitmaps in the list.

NOTE: Using this function to change the color order of a 24-bit or 32-bit image (i.e. RGB to BGR) will have no effect on the image when painting or saving (to a file). If you want to change the visual appearance, you can simply swap the Order member of the BITMAPHANDLE.

Required DLLs and Libraries


Win32, x64.

See Also




L_INT LAnnAutomation_LAnnAutomation_LAnimationWindow_ColorResItemsExample(HWND hWndParent) 
   L_INT nRet; 
 //make sure all libraries are loaded 
   LAnimationWindow MyAnimation; 
   nRet = MyAnimation.Load(); 
   if (nRet==SUCCESS) 
      /* Get an optimized palette for the whole list */ 
      nRet = MyAnimation.ColorResItems(8, CRF_NODITHERING|CRF_OPTIMIZEDPALETTE); 
      if(nRet != SUCCESS) 
         return nRet; 
      MyAnimation.CreateWnd(hWndParent,0, WS_VISIBLE|WS_CHILD|WS_BORDER,0,0,300,300); 
      nRet = MyAnimation.PlayAnimation();  
      if(nRet != SUCCESS) 
         return nRet; 
      while (MyAnimation.IsPlaying()) 
         if (MyAnimation.DoEvents()) 
      return nRet; 
   return SUCCESS; 
Help Version 22.0.2023.2.2
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.

LEADTOOLS Raster Imaging C++ Class Library Help