65 #include <config_auto.h>
69 #include "allheaders.h"
109 l_int32 i, j, w, h, d, n, x1, y1, x2, y2, bw, bh, val, wpls;
111 l_uint32 *lines, *datas;
114 PROCNAME(
"pixSetSelectCmap");
117 return ERROR_INT(
"pixs not defined", procName, 1);
118 if ((cmap = pixGetColormap(pixs)) == NULL)
119 return ERROR_INT(
"no colormap", procName, 1);
120 d = pixGetDepth(pixs);
121 if (d != 1 && d != 2 && d != 4 && d != 8)
122 return ERROR_INT(
"depth not in {1,2,4,8}", procName, 1);
127 return ERROR_INT(
"sindex too large; no cmap entry", procName, 1);
130 return ERROR_INT(
"error adding cmap entry", procName, 1);
149 wpls = pixGetWpl(pixs);
150 for (i = y1; i <= y2; i++) {
153 lines = datas + i * wpls;
154 for (j = x1; j <= x2; j++) {
183 return ERROR_INT(
"depth not in {1,2,4,8}", procName, 1);
230 l_int32 i, j, k, w, h, n, nc, x1, y1, x2, y2, bw, bh, wpl;
233 l_uint32 *line, *data;
238 PROCNAME(
"pixColorGrayRegionsCmap");
241 return ERROR_INT(
"pixs not defined", procName, 1);
243 return ERROR_INT(
"boxa not defined", procName, 1);
244 if ((cmap = pixGetColormap(pixs)) == NULL)
245 return ERROR_INT(
"no colormap", procName, 1);
246 if (pixGetDepth(pixs) != 8)
247 return ERROR_INT(
"depth not 8 bpp", procName, 1);
249 return ERROR_INT(
"invalid type", procName, 1);
253 return ERROR_INT(
"no room; cmap full", procName, 1);
257 return ERROR_INT(
"map not made", procName, 1);
261 wpl = pixGetWpl(pixs);
263 for (k = 0; k < n; k++) {
270 for (i = y1; i <= y2; i++) {
273 line = data + i * wpl;
274 for (j = x1; j <= x2; j++) {
278 if (val >= nc)
continue;
338 l_int32 w, h, d, ret;
343 PROCNAME(
"pixColorGrayCmap");
346 return ERROR_INT(
"pixs not defined", procName, 1);
347 if ((cmap = pixGetColormap(pixs)) == NULL)
348 return ERROR_INT(
"no colormap", procName, 1);
350 if (d != 2 && d != 4 && d != 8)
351 return ERROR_INT(
"depth not in {2, 4, 8}", procName, 1);
353 return ERROR_INT(
"invalid type", procName, 1);
356 if (d == 2 || d == 4) {
406 l_int32 i, j, w, h, wm, hm, wmin, hmin, wpl, wplm;
409 l_uint32 *line, *data, *linem, *datam;
413 PROCNAME(
"pixColorGrayMaskedCmap");
416 return ERROR_INT(
"pixs not defined", procName, 1);
417 if (!pixm || pixGetDepth(pixm) != 1)
418 return ERROR_INT(
"pixm undefined or not 1 bpp", procName, 1);
419 if ((cmap = pixGetColormap(pixs)) == NULL)
420 return ERROR_INT(
"no colormap", procName, 1);
421 if (pixGetDepth(pixs) != 8)
422 return ERROR_INT(
"depth not 8 bpp", procName, 1);
424 return ERROR_INT(
"invalid type", procName, 1);
427 return ERROR_INT(
"no room; cmap full", procName, 1);
431 return ERROR_INT(
"map not made", procName, 1);
436 L_WARNING(
"wm = %d differs from w = %d\n", procName, wm, w);
438 L_WARNING(
"hm = %d differs from h = %d\n", procName, hm, h);
443 wpl = pixGetWpl(pixs);
445 wplm = pixGetWpl(pixm);
448 for (i = 0; i < hmin; i++) {
449 line = data + i * wpl;
450 linem = datam + i * wplm;
451 for (j = 0; j < wmin; j++) {
503 l_int32 i, n, erval, egval, ebval, nrval, ngval, nbval, newindex;
506 PROCNAME(
"addColorizedGrayToCmap");
508 if (pna) *pna = NULL;
510 return ERROR_INT(
"cmap not defined", procName, 1);
512 return ERROR_INT(
"invalid type", procName, 1);
516 for (i = 0; i < n; i++) {
519 if (erval == egval && erval == ebval && erval != 0) {
520 nrval = (l_int32)(rval * (l_float32)erval / 255.);
521 ngval = (l_int32)(gval * (l_float32)egval / 255.);
522 nbval = (l_int32)(bval * (l_float32)ebval / 255.);
525 L_WARNING(
"no room; colormap full\n", procName);
533 if (erval == egval && erval == ebval && erval != 255) {
535 (l_int32)((255. - rval) * (l_float32)erval / 255.);
537 (l_int32)((255. - gval) * (l_float32)egval / 255.);
539 (l_int32)((255. - bval) * (l_float32)ebval / 255.);
542 L_WARNING(
"no room; colormap full\n", procName);
596 l_int32 i, j, w, h, d, n, wm, hm, wpls, wplm, val;
598 l_uint32 *lines, *linem, *datas, *datam;
601 PROCNAME(
"pixSetSelectMaskedCmap");
604 return ERROR_INT(
"pixs not defined", procName, 1);
605 if ((cmap = pixGetColormap(pixs)) == NULL)
606 return ERROR_INT(
"no colormap", procName, 1);
608 L_WARNING(
"no mask; nothing to do\n", procName);
612 d = pixGetDepth(pixs);
613 if (d != 2 && d != 4 && d != 8)
614 return ERROR_INT(
"depth not in {2, 4, 8}", procName, 1);
619 return ERROR_INT(
"sindex too large; no cmap entry", procName, 1);
622 return ERROR_INT(
"error adding cmap entry", procName, 1);
631 wpls = pixGetWpl(pixs);
632 wm = pixGetWidth(pixm);
633 hm = pixGetHeight(pixm);
635 wplm = pixGetWpl(pixm);
636 for (i = 0; i < hm; i++) {
637 if (i + y < 0 || i + y >= h)
continue;
638 lines = datas + (y + i) * wpls;
639 linem = datam + i * wplm;
640 for (j = 0; j < wm; j++) {
641 if (j + x < 0 || j + x >= w)
continue;
660 return ERROR_INT(
"depth not in {1,2,4,8}", procName, 1);
706 l_int32 w, h, d, wpl, wm, hm, wplm;
708 l_uint32 *data, *datam, *line, *linem;
711 PROCNAME(
"pixSetMaskedCmap");
714 return ERROR_INT(
"pixs not defined", procName, 1);
715 if ((cmap = pixGetColormap(pixs)) == NULL)
716 return ERROR_INT(
"no colormap in pixs", procName, 1);
718 L_WARNING(
"no mask; nothing to do\n", procName);
721 d = pixGetDepth(pixs);
722 if (d != 2 && d != 4 && d != 8)
723 return ERROR_INT(
"depth not in {2,4,8}", procName, 1);
724 if (pixGetDepth(pixm) != 1)
725 return ERROR_INT(
"pixm not 1 bpp", procName, 1);
730 return ERROR_INT(
"no room in cmap", procName, 1);
735 wpl = pixGetWpl(pixs);
738 wplm = pixGetWpl(pixm);
740 for (i = 0; i < hm; i++) {
741 if (i + y < 0 || i + y >= h)
continue;
742 line = data + (i + y) * wpl;
743 linem = datam + i * wplm;
744 for (j = 0; j < wm; j++) {
745 if (j + x < 0 || j + x >= w)
continue;
758 return ERROR_INT(
"depth not in {2,4,8}", procName, 1);
#define GET_DATA_QBIT(pdata, n)
#define SET_DATA_BIT(pdata, n)
#define SET_DATA_DIBIT(pdata, n, val)
#define GET_DATA_BYTE(pdata, n)
#define GET_DATA_DIBIT(pdata, n)
#define SET_DATA_BYTE(pdata, n, val)
#define CLEAR_DATA_BIT(pdata, n)
#define GET_DATA_BIT(pdata, n)
#define SET_DATA_QBIT(pdata, n, val)
void boxDestroy(BOX **pbox)
boxDestroy()
l_int32 boxaGetCount(BOXA *boxa)
boxaGetCount()
l_ok boxGetGeometry(BOX *box, l_int32 *px, l_int32 *py, l_int32 *pw, l_int32 *ph)
boxGetGeometry()
l_ok boxaAddBox(BOXA *boxa, BOX *box, l_int32 copyflag)
boxaAddBox()
void boxaDestroy(BOXA **pboxa)
boxaDestroy()
BOX * boxaGetBox(BOXA *boxa, l_int32 index, l_int32 accessflag)
boxaGetBox()
BOX * boxCreate(l_int32 x, l_int32 y, l_int32 w, l_int32 h)
boxCreate()
BOXA * boxaCreate(l_int32 n)
boxaCreate()
l_int32 pixcmapGetCount(const PIXCMAP *cmap)
pixcmapGetCount()
l_ok pixcmapAddNewColor(PIXCMAP *cmap, l_int32 rval, l_int32 gval, l_int32 bval, l_int32 *pindex)
pixcmapAddNewColor()
l_int32 pixcmapGetIndex(PIXCMAP *cmap, l_int32 rval, l_int32 gval, l_int32 bval, l_int32 *pindex)
pixcmapGetIndex()
l_ok pixcmapGetColor(PIXCMAP *cmap, l_int32 index, l_int32 *prval, l_int32 *pgval, l_int32 *pbval)
pixcmapGetColor()
l_ok pixcmapAddColor(PIXCMAP *cmap, l_int32 rval, l_int32 gval, l_int32 bval)
pixcmapAddColor()
l_ok numaAddNumber(NUMA *na, l_float32 val)
numaAddNumber()
NUMA * numaCreate(l_int32 n)
numaCreate()
void numaDestroy(NUMA **pna)
numaDestroy()
l_int32 * numaGetIArray(NUMA *na)
numaGetIArray()
l_ok pixSetSelectMaskedCmap(PIX *pixs, PIX *pixm, l_int32 x, l_int32 y, l_int32 sindex, l_int32 rval, l_int32 gval, l_int32 bval)
pixSetSelectMaskedCmap()
l_ok pixColorGrayCmap(PIX *pixs, BOX *box, l_int32 type, l_int32 rval, l_int32 gval, l_int32 bval)
pixColorGrayCmap()
l_ok addColorizedGrayToCmap(PIXCMAP *cmap, l_int32 type, l_int32 rval, l_int32 gval, l_int32 bval, NUMA **pna)
addColorizedGrayToCmap()
l_ok pixColorGrayMaskedCmap(PIX *pixs, PIX *pixm, l_int32 type, l_int32 rval, l_int32 gval, l_int32 bval)
pixColorGrayMaskedCmap()
l_ok pixSetSelectCmap(PIX *pixs, BOX *box, l_int32 sindex, l_int32 rval, l_int32 gval, l_int32 bval)
pixSetSelectCmap()
l_ok pixColorGrayRegionsCmap(PIX *pixs, BOXA *boxa, l_int32 type, l_int32 rval, l_int32 gval, l_int32 bval)
pixColorGrayRegionsCmap()
l_ok pixSetMaskedCmap(PIX *pixs, PIX *pixm, l_int32 x, l_int32 y, l_int32 rval, l_int32 gval, l_int32 bval)
pixSetMaskedCmap()
l_uint32 * pixGetData(PIX *pix)
pixGetData()
l_ok pixGetDimensions(const PIX *pix, l_int32 *pw, l_int32 *ph, l_int32 *pd)
pixGetDimensions()
l_ok pixTransferAllData(PIX *pixd, PIX **ppixs, l_int32 copytext, l_int32 copyformat)
pixTransferAllData()
PIX * pixConvertTo8(PIX *pixs, l_int32 cmapflag)
pixConvertTo8()