MCPcopy Create free account
hub / github.com/creatale/node-dv / pixConvertTo2

Function pixConvertTo2

deps/leptonica/src/pixconv.c:2717–2755  ·  view source on GitHub ↗

---------------------------------------------------------------------------* * Top-level conversion to 2 bpp * *---------------------------------------------------------------------------*/ ! * \brief pixConvertTo2() * * \param[in] pixs 1, 2, 4, 8, 32 bpp; colormap OK but will be removed * \return pixd 2 bpp, or NULL on error * *

Source from the content-addressed store, hash-verified

2715 * </pre>
2716 */
2717PIX *
2718pixConvertTo2(PIX *pixs)
2719{
2720l_int32 d;
2721PIX *pix1, *pix2, *pix3, *pixd;
2722
2723 PROCNAME("pixConvertTo2");
2724
2725 if (!pixs)
2726 return (PIX *)ERROR_PTR("pixs not defined", procName, NULL);
2727 d = pixGetDepth(pixs);
2728 if (d != 1 && d != 2 && d != 4 && d != 8 && d != 32)
2729 return (PIX *)ERROR_PTR("depth not {1,2,4,8,32}", procName, NULL);
2730
2731 if (pixGetColormap(pixs) != NULL) {
2732 pix1 = pixRemoveColormap(pixs, REMOVE_CMAP_TO_GRAYSCALE);
2733 d = pixGetDepth(pix1);
2734 } else {
2735 pix1 = pixCopy(NULL, pixs);
2736 }
2737 if (d == 32)
2738 pix2 = pixConvertTo8(pix1, FALSE);
2739 else
2740 pix2 = pixClone(pix1);
2741 pixDestroy(&pix1);
2742 if (d == 1) {
2743 pixd = pixConvert1To2(NULL, pix2, 3, 0);
2744 } else if (d == 2) {
2745 pixd = pixClone(pix2);
2746 } else if (d == 4) {
2747 pix3 = pixConvert4To8(pix2, FALSE); /* unpack to 8 */
2748 pixd = pixConvert8To2(pix3);
2749 pixDestroy(&pix3);
2750 } else { /* d == 8 */
2751 pixd = pixConvert8To2(pix2);
2752 }
2753 pixDestroy(&pix2);
2754 return pixd;
2755}
2756
2757
2758/*!

Callers

nothing calls this directly

Calls 10

pixGetDepthFunction · 0.85
pixGetColormapFunction · 0.85
pixRemoveColormapFunction · 0.85
pixCopyFunction · 0.85
pixConvertTo8Function · 0.85
pixCloneFunction · 0.85
pixDestroyFunction · 0.85
pixConvert1To2Function · 0.85
pixConvert4To8Function · 0.85
pixConvert8To2Function · 0.85

Tested by

no test coverage detected