This function reduces a 24-bit or 8-bit image to an 8-bit or 4-bit image, having the number of colors specified by nMaxColors.
|
Copy Code
|
|
|---|---|
AT_ERRCOUNT ACCUAPI IG_IP_color_reduce_octree (
HIGEAR hIGear,
BOOL bFastRemap,
UINT nMaxColors,
const UINT nPaletteSize,
const LPAT_RGB lpPalette
);
|
|
| Name | Type | Description |
|---|---|---|
| hIGear | HIGEAR | HIGEAR handle of image. |
| bFastRemap | BOOL | Set = TRUE for reduction algorithm optimized for speed. Set = FALSE for algorithm optimized for quality. |
| nMaxColors | UINT | The maximum number of colors (that is, maximum number of unique pixel values) you want in the resulting image. If you set this to > 16, the resulting image will be an 8-bit. Valid values are 8 - 256. If you pass in a value out of this range, ImageGear will set the value to either 8 or 256. See description below for details. |
| nPaletteSize | const UINT | Number of entries in palette lpPalette that will be used by ImageGear during reduction. This should be >= nMaxColors. Setting this to 0, and setting lpPalette to NULL will have ImageGear make an optimized palette for you. |
| lpPalette | const LPAT_RGB | LONG pointer to an array of palette entries, where the number of entries = nPaletteSize. Set to NULL if you want ImageGear to make an optimized palette for you. |
Returns the number of ImageGear errors that occurred during this function call.
Indexed RGB – 8 bpp;
Grayscale – 8 bpp;
RGB – 24 bpp.
None
|
Copy Code
|
|
|---|---|
HIGEAR hIGear; /* HIGEAR handle of image */ AT_RGB rgbPalette[64]; /* Pointer to image's palette */ AT_ERRCOUNT nErrcount; /* Tally of ImageGear errors on stack*/ /* Reduce image to 64 colors using given palette */ nErrcount = IG_IP_color_reduce_octree (hIGear, FALSE, 64, 64, rgbPalette); /* Reduce image to 64 colors, having ImageGear build optimal palette */ nErrcount = IG_IP_color_reduce_octree (hIGear, FALSE, 64, 0, NULL); |
|
If you set nPaletteSize > 0 and supply an address to lpPalette, ImageGear will use your palette. If you set either nPaletteSize = 0 or lpPalette to NULL, ImageGear will build an optimized palette for you. If you set nMaxColors > 16, then an 8-bit image will always result. Setting nMaxColors <=16 will result in a 4-bit image. You may not specify less than 8 colors.
nPaletteSize should be set to >= nMaxColors. If nPaletteSize is set to 0, ImageGear will build an optimal palette and lpPalette will be unused. The table below demonstrates some sample cases of 8 and 24-bit images being reduced, using the setting of nMaxColors (middle column). The right-most column shows the number of Bits Per Pixel that the resulting image will have.
Octree Bit Depths In and Out
| Bpp of orig. HIGEAR | # of resulting colors | Bpp reduced image |
|---|---|---|
| 24 | 17-256 | 8 |
| 24 | 8-16 | 4 |
| 24 | 1-7 | * |
| 8 | 17-256 | 8 |
| 8 | 8-16 | 4 |
| 8 | 1-7 | * |
*Not possible, nMaxColors will be changed to 8