LAnimationWindow::ColorResItems

#include "ltwrappr.h"

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

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

Parameters

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 indcates 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.

LPRGBQUAD pPalette

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

HPALETTE hPalette

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:

Returns

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

Comments

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

Platforms

Win32, x64.

See Also

Functions

Topics

Example

L_INT LAnnAutomation_LAnnAutomation_LAnimationWindow_ColorResItemsExample(HWND hWndParent) 
{ 
   L_INT nRet; 
 
   LBase::LoadLibraries(LT_ALL_LEADLIB);  
 //make sure all libraries are loaded 
 
   LAnimationWindow MyAnimation; 
 
   MyAnimation.SetFileName(MAKE_IMAGE_PATH(TEXT("eye.gif"))); 
   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()) 
 
            break;  
  
 
      } 
   }  
   else  
      return nRet; 
 
   return SUCCESS; 
} 
Help Version 20.0.2020.4.5
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2020 LEAD Technologies, Inc. All Rights Reserved.

LEADTOOLS Raster Imaging C++ Class Library Help