#include "ltwrappr.h"
virtual L_INT LBitmapList::ColorResItems(nBitsPerPixel, uFlags, pPalette=NULL, hPalette=NULL, uColors=0)
L_INT nBitsPerPixel; |
number of bits per pixel |
L_UINT32 uFlags; |
flag that indicates processing options |
LPRGBQUAD pPalette; |
custom palette |
HPALETTE hPalette; |
custom palette handle to use |
L_UINT uColors; |
number of colors in the palette |
Converts all bitmaps in a class object's bitmap list from any bits-per-pixel to any bits-per-pixel. You can use this function to create an optimized palette for all bitmaps in the bitmap list.
Parameter | Description | |
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, 32, 48, and 64. | |
uFlags | 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 ( | ). The following are valid values: | |
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 by 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. | |
pPalette | The custom palette to use. Specify this parameter as follows: | |
- If you want to use the fixed palette or a fully optimized palette, pass NULL in this parameter and in hPalette. | ||
- If you want to supply the entire palette, specify CRF_USERPALETTE in the uFlags parameter and pass the address of your palette. | ||
- If you want the function to fill part of your palette with optimized colors, specify CRF_OPTIMIZEDPALETTE in the uFlags parameter and pass the address of your palettein pPalette and NULL in hPalette. | ||
hPalette | The custom palette to use. Specify this parameter as follows: | |
- If you want to use the fixed palette or a fully optimized palette, pass NULL in this parameter and in pPalette. | ||
- If you want to supply the entire palette, specify CRF_USERHPALETTE in the uFlags parameter and pass the handle of your palette. | ||
- If you want the function to fill part of your palette with optimized colors, specify CRF_OPTIMIZEDPALETTE in the uFlags parameter and pass NULL for pPalette and the handle of your palette in hPalette. | ||
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: | |
- If you specify a palette in the pPalette or hPalette parameter, pass the number of entries in your palette (including reserved entries). | ||
- If you specify NULL in the pPalette and in the hPalette parameters and you specify CRF_OPTIMIZEDPALETTE in the uFlags parameter, you can use this parameter to limit the number of colors that the function maps in the optimized palette. |
SUCCESS |
The function was successful. |
< 1 |
An error occurred. Refer to Return Codes. |
Required DLLs and Libraries
LTFIL For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application. |
Win32, x64.
Functions: |
|
Topics: |
|
|
|
|
|
|
|
|
This example changes the hue of bitmaps in a list, then updates the paint palette and the target bitmap's palette for animation playback. When changing the hue, it preserves the transparent color.
L_INT LBitmapList__ColorResItemsExample(HWND hWnd, LBitmapList *pBitmapList, LPRGBQUAD TransparentColor)
{
L_INT nRet;
HDC hdc; /* Device context of the current window */
L_UINT i; /* Loop counter */
L_UINT uCount; /* Number of bitmaps in the list */
LBitmap LeadBitmap; /* Bitmap handle for the target bitmap */
LBitmap TmpBitmap; /* Temporary bitmap for manipulating the list */
HPALETTE hpalPaint; /* Paint palette handle */
/* Change the hue of each bitmap in the list,
and restore the transparent color as the last color in the palette */
uCount = pBitmapList->GetItemsCount ();
for (i = 0; i < uCount; ++i)
{
nRet =pBitmapList->GetItem (i, &TmpBitmap,sizeof(TmpBitmap));
if(nRet !=SUCCESS)
return nRet;
nRet =TmpBitmap.ChangeHue(i * 10);
if(nRet !=SUCCESS)
return nRet;
nRet =TmpBitmap.PutColors(255, 1, TransparentColor);
if(nRet !=SUCCESS)
return nRet;
nRet =pBitmapList->SetItem (i, &TmpBitmap);
if(nRet !=SUCCESS)
return nRet;
}
/* Get an optimized palette for the whole list */
nRet =pBitmapList->ColorResItems (8, CRF_NODITHERING|CRF_OPTIMIZEDPALETTE, NULL, 0);
if(nRet !=SUCCESS)
return nRet;
/* Update the paint palette that is used for playback */
nRet =pBitmapList->GetItem (0, &TmpBitmap,sizeof(TmpBitmap));
if(nRet !=SUCCESS)
return nRet;
hdc = GetDC (hWnd);
hpalPaint = TmpBitmap.CreatePaintPalette (hdc);
ReleaseDC (hWnd, hdc);
/* Update the target bitmap's background color, based on the new palette */
LeadBitmap.SetPlayBackBackGroundColor (TmpBitmap.TranslateColor (LeadBitmap, LeadBitmap.GetPlayBackBackGroundColor ()));
/* Copy the new palette to the target bitmap */
LeadBitmap.SetPalette (TmpBitmap.DupPalette ());
return SUCCESS;
}
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document
Your email has been sent to support! Someone should be in touch! If your matter is urgent please come back into chat.
Chat Hours:
Monday - Friday, 8:30am to 6pm ET
Thank you for your feedback!
Please fill out the form again to start a new chat.
All agents are currently offline.
Chat Hours:
Monday - Friday
8:30AM - 6PM EST
To contact us please fill out this form and we will contact you via email.