! * \brief pixcmapConvertTo8() * * \param[in] cmaps colormap for 2 bpp or 4 bpp pix * \return cmapd (8 bpp) * * * Notes: * (1) This converts a 2 bpp or 4 bpp colormap to 8 bpp. The colors * are the same; the output colormap entry array has size 256. * */
| 1550 | * </pre> |
| 1551 | */ |
| 1552 | PIXCMAP * |
| 1553 | pixcmapConvertTo8(PIXCMAP *cmaps) |
| 1554 | { |
| 1555 | l_int32 i, n, depth, rval, gval, bval; |
| 1556 | PIXCMAP *cmapd; |
| 1557 | |
| 1558 | PROCNAME("pixcmapConvertTo8"); |
| 1559 | |
| 1560 | if (!cmaps) |
| 1561 | return (PIXCMAP *)ERROR_PTR("cmaps not defined", procName, NULL); |
| 1562 | depth = pixcmapGetDepth(cmaps); |
| 1563 | if (depth == 8) return pixcmapCopy(cmaps); |
| 1564 | if (depth != 2 && depth != 4) |
| 1565 | return (PIXCMAP *)ERROR_PTR("cmaps not 2 or 4 bpp", procName, NULL); |
| 1566 | |
| 1567 | cmapd = pixcmapCreate(8); |
| 1568 | n = pixcmapGetCount(cmaps); |
| 1569 | for (i = 0; i < n; i++) { |
| 1570 | pixcmapGetColor(cmaps, i, &rval, &gval, &bval); |
| 1571 | pixcmapAddColor(cmapd, rval, gval, bval); |
| 1572 | } |
| 1573 | return cmapd; |
| 1574 | } |
| 1575 | |
| 1576 | |
| 1577 | /*-------------------------------------------------------------* |
no test coverage detected