145 #include "allheaders.h" 147 static const l_int32 INITIAL_PTR_ARRAYSIZE = 20;
150 extern l_int32 NumImageFileFormatExtensions;
151 extern const char *ImageFileFormatExtensions[];
183 PROCNAME(
"pixcompCreateFromPix");
186 return (
PIXC *)ERROR_PTR(
"pix not defined", procName, NULL);
187 if (comptype != IFF_DEFAULT && comptype != IFF_TIFF_G4 &&
188 comptype != IFF_PNG && comptype != IFF_JFIF_JPEG)
189 return (
PIXC *)ERROR_PTR(
"invalid comptype", procName, NULL);
191 if ((pixc = (
PIXC *)LEPT_CALLOC(1,
sizeof(
PIXC))) == NULL)
192 return (
PIXC *)ERROR_PTR(
"pixc not made", procName, NULL);
195 if (pixGetColormap(pix))
202 ret = pixWriteMem(&data, &size, pix, format);
204 L_ERROR(
"write to memory failed\n", procName);
235 l_int32 format, w, h, d, bps, spp, iscmap;
238 PROCNAME(
"pixcompCreateFromString");
241 return (
PIXC *)ERROR_PTR(
"data not defined", procName, NULL);
243 return (
PIXC *)ERROR_PTR(
"invalid copyflag", procName, NULL);
245 if (
pixReadHeaderMem(data, size, &format, &w, &h, &bps, &spp, &iscmap) == 1)
246 return (
PIXC *)ERROR_PTR(
"header data not read", procName, NULL);
247 if ((pixc = (
PIXC *)LEPT_CALLOC(1,
sizeof(
PIXC))) == NULL)
248 return (
PIXC *)ERROR_PTR(
"pixc not made", procName, NULL);
249 d = (spp == 3) ? 32 : bps * spp;
289 PROCNAME(
"pixcompCreateFromFile");
292 return (
PIXC *)ERROR_PTR(
"filename not defined", procName, NULL);
293 if (comptype != IFF_DEFAULT && comptype != IFF_TIFF_G4 &&
294 comptype != IFF_PNG && comptype != IFF_JFIF_JPEG)
295 return (
PIXC *)ERROR_PTR(
"invalid comptype", procName, NULL);
298 if (format == IFF_UNKNOWN) {
299 L_ERROR(
"unreadable file: %s\n", procName, filename);
307 if ((format == IFF_TIFF_G4 && comptype != IFF_PNG) ||
308 (format == IFF_JFIF_JPEG && comptype != IFF_PNG))
310 if (comptype != IFF_DEFAULT && comptype == format) {
314 return (
PIXC *)ERROR_PTR(
"pixc not made (string)", procName, NULL);
320 if ((pix =
pixRead(filename)) == NULL)
321 return (
PIXC *)ERROR_PTR(
"pix not read", procName, NULL);
324 return (
PIXC *)ERROR_PTR(
"pixc not made", procName, NULL);
347 PROCNAME(
"pixcompDestroy");
350 L_WARNING(
"ptr address is null!\n", procName);
354 if ((pixc = *ppixc) == NULL)
357 LEPT_FREE(pixc->
data);
359 LEPT_FREE(pixc->
text);
376 l_uint8 *datas, *datad;
379 PROCNAME(
"pixcompCopy");
382 return (
PIXC *)ERROR_PTR(
"pixcs not defined", procName, NULL);
384 if ((pixcd = (
PIXC *)LEPT_CALLOC(1,
sizeof(
PIXC))) == NULL)
385 return (
PIXC *)ERROR_PTR(
"pixcd not made", procName, NULL);
392 if (pixcs->
text != NULL)
399 datad = (l_uint8 *)LEPT_CALLOC(size,
sizeof(l_int8));
400 memcpy((
char*)datad, (
char*)datas, size);
423 PROCNAME(
"pixcompGetDimensions");
426 return ERROR_INT(
"pixc not defined", procName, 1);
427 if (pw) *pw = pixc->
w;
428 if (ph) *ph = pixc->
h;
429 if (pd) *pd = pixc->
d;
461 PROCNAME(
"pixcompDetermineFormat");
464 return ERROR_INT(
"&format not defined", procName, 1);
466 if (comptype != IFF_DEFAULT && comptype != IFF_TIFF_G4 &&
467 comptype != IFF_PNG && comptype != IFF_JFIF_JPEG)
468 return ERROR_INT(
"invalid comptype", procName, 1);
470 if (comptype == IFF_DEFAULT) {
472 *pformat = IFF_TIFF_G4;
475 else if (d >= 8 && !cmapflag)
476 *pformat = IFF_JFIF_JPEG;
477 }
else if (comptype == IFF_TIFF_G4 && d == 1) {
478 *pformat = IFF_TIFF_G4;
479 }
else if (comptype == IFF_JFIF_JPEG && d >= 8 && !cmapflag) {
480 *pformat = IFF_JFIF_JPEG;
499 l_int32 w, h, d, cmapinpix, format;
502 PROCNAME(
"pixCreateFromPixcomp");
505 return (
PIX *)ERROR_PTR(
"pixc not defined", procName, NULL);
508 return (
PIX *)ERROR_PTR(
"pix not read", procName, NULL);
516 L_INFO(
"pix width %d != pixc width %d\n", procName, w, pixc->
w);
517 L_ERROR(
"pix width %d != pixc width\n", procName, w);
520 L_ERROR(
"pix height %d != pixc height\n", procName, h);
523 L_WARNING(
"pix depth %d != pixc depth 16\n", procName, d);
525 L_ERROR(
"pix depth %d != pixc depth\n", procName, d);
527 cmapinpix = (pixGetColormap(pix) != NULL);
529 L_ERROR(
"pix cmap flag inconsistent\n", procName);
530 format = pixGetInputFormat(pix);
532 L_ERROR(
"pix comptype %d not equal to pixc comptype\n",
554 PROCNAME(
"pixacompCreate");
557 n = INITIAL_PTR_ARRAYSIZE;
559 if ((pixac = (
PIXAC *)LEPT_CALLOC(1,
sizeof(
PIXAC))) == NULL)
560 return (
PIXAC *)ERROR_PTR(
"pixac not made", procName, NULL);
565 if ((pixac->
pixc = (
PIXC **)LEPT_CALLOC(n,
sizeof(
PIXC *))) == NULL) {
567 return (
PIXAC *)ERROR_PTR(
"pixc ptrs not made", procName, NULL);
571 return (
PIXAC *)ERROR_PTR(
"boxa not made", procName, NULL);
627 PROCNAME(
"pixacompCreateWithInit");
630 return (
PIXAC *)ERROR_PTR(
"n must be > 0", procName, NULL);
632 if (comptype != IFF_DEFAULT && comptype != IFF_TIFF_G4 &&
633 comptype != IFF_PNG && comptype != IFF_JFIF_JPEG)
634 return (
PIXAC *)ERROR_PTR(
"invalid comptype", procName, NULL);
636 comptype = IFF_TIFF_G4;
639 L_WARNING(
"offset < 0; setting to 0\n", procName);
644 return (
PIXAC *)ERROR_PTR(
"pixac not made", procName, NULL);
650 for (i = 0; i < n; i++) {
688 PROCNAME(
"pixacompCreateFromPixa");
691 return (
PIXAC *)ERROR_PTR(
"pixa not defined", procName, NULL);
692 if (comptype != IFF_DEFAULT && comptype != IFF_TIFF_G4 &&
693 comptype != IFF_PNG && comptype != IFF_JFIF_JPEG)
694 return (
PIXAC *)ERROR_PTR(
"invalid comptype", procName, NULL);
697 return (
PIXAC *)ERROR_PTR(
"invalid accesstype", procName, NULL);
701 return (
PIXAC *)ERROR_PTR(
"pixac not made", procName, NULL);
702 for (i = 0; i < n; i++) {
707 if ((boxa =
pixaGetBoxa(pixa, accesstype)) != NULL) {
745 PROCNAME(
"pixacompCreateFromFiles");
748 return (
PIXAC *)ERROR_PTR(
"dirname not defined", procName, NULL);
749 if (comptype != IFF_DEFAULT && comptype != IFF_TIFF_G4 &&
750 comptype != IFF_PNG && comptype != IFF_JFIF_JPEG)
751 return (
PIXAC *)ERROR_PTR(
"invalid comptype", procName, NULL);
754 return (
PIXAC *)ERROR_PTR(
"sa not made", procName, NULL);
785 PROCNAME(
"pixacompCreateFromSA");
788 return (
PIXAC *)ERROR_PTR(
"sarray not defined", procName, NULL);
789 if (comptype != IFF_DEFAULT && comptype != IFF_TIFF_G4 &&
790 comptype != IFF_PNG && comptype != IFF_JFIF_JPEG)
791 return (
PIXAC *)ERROR_PTR(
"invalid comptype", procName, NULL);
795 for (i = 0; i < n; i++) {
798 L_ERROR(
"pixc not read from file: %s\n", procName, str);
824 PROCNAME(
"pixacompDestroy");
826 if (ppixac == NULL) {
827 L_WARNING(
"ptr address is NULL!\n", procName);
831 if ((pixac = *ppixac) == NULL)
834 for (i = 0; i < pixac->
n; i++)
836 LEPT_FREE(pixac->
pixc);
870 l_int32 cmapflag, format;
873 PROCNAME(
"pixacompAddPix");
876 return ERROR_INT(
"pixac not defined", procName, 1);
878 return ERROR_INT(
"pix not defined", procName, 1);
879 if (comptype != IFF_DEFAULT && comptype != IFF_TIFF_G4 &&
880 comptype != IFF_PNG && comptype != IFF_JFIF_JPEG)
881 return ERROR_INT(
"invalid format", procName, 1);
883 cmapflag = pixGetColormap(pix) ? 1 : 0;
886 return ERROR_INT(
"pixc not made", procName, 1);
914 PROCNAME(
"pixacompAddPixcomp");
917 return ERROR_INT(
"pixac not defined", procName, 1);
919 return ERROR_INT(
"pixc not defined", procName, 1);
921 return ERROR_INT(
"invalid copyflag", procName, 1);
927 pixac->
pixc[n] = pixc;
953 PROCNAME(
"pixacompExtendArray");
956 return ERROR_INT(
"pixac not defined", procName, 1);
961 return ERROR_INT(
"new ptr array not returned", procName, 1);
994 PROCNAME(
"pixacompReplacePix");
997 return ERROR_INT(
"pixac not defined", procName, 1);
999 aindex = index - pixac->
offset;
1000 if (aindex < 0 || aindex >= n)
1001 return ERROR_INT(
"array index out of bounds", procName, 1);
1003 return ERROR_INT(
"pix not defined", procName, 1);
1004 if (comptype != IFF_DEFAULT && comptype != IFF_TIFF_G4 &&
1005 comptype != IFF_PNG && comptype != IFF_JFIF_JPEG)
1006 return ERROR_INT(
"invalid format", procName, 1);
1038 PROCNAME(
"pixacompReplacePixcomp");
1041 return ERROR_INT(
"pixac not defined", procName, 1);
1043 aindex = index - pixac->
offset;
1044 if (aindex < 0 || aindex >= n)
1045 return ERROR_INT(
"array index out of bounds", procName, 1);
1047 return ERROR_INT(
"pixc not defined", procName, 1);
1051 pixac->
pixc[aindex] = pixc;
1070 PROCNAME(
"pixacompAddBox");
1073 return ERROR_INT(
"pixac not defined", procName, 1);
1075 return ERROR_INT(
"box not defined", procName, 1);
1077 return ERROR_INT(
"invalid copyflag", procName, 1);
1096 PROCNAME(
"pixacompGetCount");
1099 return ERROR_INT(
"pixac not defined", procName, 0);
1128 PROCNAME(
"pixacompGetPixcomp");
1131 return (
PIXC *)ERROR_PTR(
"pixac not defined", procName, NULL);
1133 return (
PIXC *)ERROR_PTR(
"invalid copyflag", procName, NULL);
1134 aindex = index - pixac->
offset;
1135 if (aindex < 0 || aindex >= pixac->
n)
1136 return (
PIXC *)ERROR_PTR(
"array index not valid", procName, NULL);
1139 return pixac->
pixc[aindex];
1165 PROCNAME(
"pixacompGetPix");
1168 return (
PIX *)ERROR_PTR(
"pixac not defined", procName, NULL);
1169 aindex = index - pixac->
offset;
1170 if (aindex < 0 || aindex >= pixac->
n)
1171 return (
PIX *)ERROR_PTR(
"array index not valid", procName, NULL);
1202 PROCNAME(
"pixacompGetPixDimensions");
1205 return ERROR_INT(
"pixac not defined", procName, 1);
1206 aindex = index - pixac->
offset;
1207 if (aindex < 0 || aindex >= pixac->
n)
1208 return ERROR_INT(
"array index not valid", procName, 1);
1210 if ((pixc = pixac->
pixc[aindex]) == NULL)
1211 return ERROR_INT(
"pixc not found!", procName, 1);
1228 PROCNAME(
"pixacompGetBoxa");
1231 return (
BOXA *)ERROR_PTR(
"pixac not defined", procName, NULL);
1233 return (
BOXA *)ERROR_PTR(
"boxa not defined", procName, NULL);
1236 return (
BOXA *)ERROR_PTR(
"invalid accesstype", procName, NULL);
1251 PROCNAME(
"pixacompGetBoxaCount");
1254 return ERROR_INT(
"pixac not defined", procName, 0);
1290 PROCNAME(
"pixacompGetBox");
1293 return (
BOX *)ERROR_PTR(
"pixac not defined", procName, NULL);
1295 return (
BOX *)ERROR_PTR(
"boxa not defined", procName, NULL);
1296 aindex = index - pixac->
offset;
1297 if (aindex < 0 || aindex >= pixac->
boxa->
n)
1298 return (
BOX *)ERROR_PTR(
"array index not valid", procName, NULL);
1300 return (
BOX *)ERROR_PTR(
"invalid accesstype", procName, NULL);
1302 box = pixac->
boxa->
box[aindex];
1304 if (accesstype ==
L_COPY)
1339 PROCNAME(
"pixacompGetBoxGeometry");
1342 return ERROR_INT(
"pixac not defined", procName, 1);
1343 aindex = index - pixac->
offset;
1344 if (aindex < 0 || aindex >= pixac->
n)
1345 return ERROR_INT(
"array index not valid", procName, 1);
1348 return ERROR_INT(
"box not found!", procName, 1);
1371 PROCNAME(
"pixacompGetOffset");
1374 return ERROR_INT(
"pixac not defined", procName, 0);
1397 PROCNAME(
"pixacompSetOffset");
1400 return ERROR_INT(
"pixac not defined", procName, 1);
1401 pixac->
offset = L_MAX(0, offset);
1427 l_int32 i, n, offset;
1431 PROCNAME(
"pixaCreateFromPixacomp");
1434 return (
PIXA *)ERROR_PTR(
"pixac not defined", procName, NULL);
1437 return (
PIXA *)ERROR_PTR(
"invalid accesstype", procName, NULL);
1443 return (
PIXA *)ERROR_PTR(
"pixa not made", procName, NULL);
1444 for (i = 0; i < n; i++) {
1446 L_WARNING(
"pix %d not made\n", procName, i);
1488 BOXA *boxas, *boxad;
1491 PROCNAME(
"pixacompJoin");
1494 return ERROR_INT(
"pixacd not defined", procName, 1);
1500 if (iend < 0 || iend >= n)
1503 return ERROR_INT(
"istart > iend; nothing to add", procName, 1);
1505 for (i = istart; i <= iend; i++) {
1513 iend = L_MIN(iend, nb - 1);
1514 boxaJoin(boxad, boxas, istart, iend);
1538 l_int32 i, n1, n2, n, nb1, nb2;
1540 PIXC *pixc1, *pixc2;
1543 PROCNAME(
"pixacompInterleave");
1546 return (
PIXAC *)ERROR_PTR(
"pixac1 not defined", procName, NULL);
1548 return (
PIXAC *)ERROR_PTR(
"pixac2 not defined", procName, NULL);
1553 return (
PIXAC *)ERROR_PTR(
"at least one input pixac is empty",
1556 L_WARNING(
"counts differ: %d != %d\n", procName, n1, n2);
1561 for (i = 0; i < n; i++) {
1602 PROCNAME(
"pixacompRead");
1605 return (
PIXAC *)ERROR_PTR(
"filename not defined", procName, NULL);
1608 return (
PIXAC *)ERROR_PTR(
"stream not opened", procName, NULL);
1612 return (
PIXAC *)ERROR_PTR(
"pixac not read", procName, NULL);
1628 l_int32 n, offset, i, w, h, d, ignore;
1629 l_int32 comptype, size, cmapflag, version, xres, yres;
1634 PROCNAME(
"pixacompReadStream");
1637 return (
PIXAC *)ERROR_PTR(
"stream not defined", procName, NULL);
1639 if (fscanf(fp,
"\nPixacomp Version %d\n", &version) != 1)
1640 return (
PIXAC *)ERROR_PTR(
"not a pixacomp file", procName, NULL);
1642 return (
PIXAC *)ERROR_PTR(
"invalid pixacomp version", procName, NULL);
1643 if (fscanf(fp,
"Number of pixcomp = %d\n", &n) != 1)
1644 return (
PIXAC *)ERROR_PTR(
"not a pixacomp file", procName, NULL);
1645 if (fscanf(fp,
"Offset of index into array = %d", &offset) != 1)
1646 return (
PIXAC *)ERROR_PTR(
"offset not read", procName, NULL);
1649 return (
PIXAC *)ERROR_PTR(
"pixac not made", procName, NULL);
1652 return (
PIXAC *)ERROR_PTR(
"boxa not made", procName, NULL);
1658 for (i = 0; i < n; i++) {
1659 if (fscanf(fp,
"\nPixcomp[%d]: w = %d, h = %d, d = %d\n",
1660 &ignore, &w, &h, &d) != 4) {
1662 return (
PIXAC *)ERROR_PTR(
"size reading", procName, NULL);
1664 if (fscanf(fp,
" comptype = %d, size = %d, cmapflag = %d\n",
1665 &comptype, &size, &cmapflag) != 3) {
1667 return (
PIXAC *)ERROR_PTR(
"comptype/size reading", procName, NULL);
1675 if (fgets(buf,
sizeof(buf), fp) == NULL) {
1677 return (
PIXAC *)ERROR_PTR(
"fgets read fail", procName, NULL);
1679 if (sscanf(buf,
" xres = %d, yres = %d\n", &xres, &yres) != 2) {
1681 return (
PIXAC *)ERROR_PTR(
"read fail for res", procName, NULL);
1683 if ((data = (l_uint8 *)LEPT_CALLOC(1, size)) == NULL) {
1685 return (
PIXAC *)ERROR_PTR(
"calloc fail for data", procName, NULL);
1687 if (fread(data, 1, size, fp) != size) {
1690 return (
PIXAC *)ERROR_PTR(
"error reading data", procName, NULL);
1693 pixc = (
PIXC *)LEPT_CALLOC(1,
sizeof(
PIXC));
1728 PROCNAME(
"pixacompReadMem");
1731 return (
PIXAC *)ERROR_PTR(
"data not defined", procName, NULL);
1733 return (
PIXAC *)ERROR_PTR(
"stream not opened", procName, NULL);
1737 if (!pixac) L_ERROR(
"pixac not read\n", procName);
1763 PROCNAME(
"pixacompWrite");
1766 return ERROR_INT(
"filename not defined", procName, 1);
1768 return ERROR_INT(
"pixacomp not defined", procName, 1);
1771 return ERROR_INT(
"stream not opened", procName, 1);
1775 return ERROR_INT(
"pixacomp not written to stream", procName, 1);
1794 PROCNAME(
"pixacompWriteStream");
1797 return ERROR_INT(
"stream not defined", procName, 1);
1799 return ERROR_INT(
"pixac not defined", procName, 1);
1803 fprintf(fp,
"Number of pixcomp = %d\n", n);
1804 fprintf(fp,
"Offset of index into array = %d", pixac->
offset);
1806 for (i = 0; i < n; i++) {
1809 return ERROR_INT(
"pixc not found", procName, 1);
1810 fprintf(fp,
"\nPixcomp[%d]: w = %d, h = %d, d = %d\n",
1811 i, pixc->
w, pixc->
h, pixc->
d);
1812 fprintf(fp,
" comptype = %d, size = %lu, cmapflag = %d\n",
1814 fprintf(fp,
" xres = %d, yres = %d\n", pixc->
xres, pixc->
yres);
1815 fwrite(pixc->
data, 1, pixc->
size, fp);
1843 PROCNAME(
"pixacompWriteMem");
1845 if (pdata) *pdata = NULL;
1846 if (psize) *psize = 0;
1848 return ERROR_INT(
"&data not defined", procName, 1);
1850 return ERROR_INT(
"&size not defined", procName, 1);
1852 return ERROR_INT(
"&pixac not defined", procName, 1);
1855 if ((fp = open_memstream((
char **)pdata, psize)) == NULL)
1856 return ERROR_INT(
"stream not opened", procName, 1);
1859 L_INFO(
"work-around: writing to a temp file\n", procName);
1862 return ERROR_INT(
"tmpfile stream not opened", procName, 1);
1864 if ((fp = tmpfile()) == NULL)
1865 return ERROR_INT(
"tmpfile stream not opened", procName, 1);
1908 l_float32 scalefactor,
1912 const char *fileout)
1918 PROCNAME(
"pixacompConvertToPdf");
1921 return ERROR_INT(
"pixac not defined", procName, 1);
1927 return ERROR_INT(
"conversion to pdf failed", procName, 1);
1933 L_ERROR(
"pdf data not written to file\n", procName);
1960 l_float32 scalefactor,
1968 l_int32 i, n, ret, scaledres, pagetype;
1974 PROCNAME(
"pixacompConvertToPdfData");
1977 return ERROR_INT(
"&data not defined", procName, 1);
1980 return ERROR_INT(
"&nbytes not defined", procName, 1);
1983 return ERROR_INT(
"pixac not defined", procName, 1);
1984 if (scalefactor <= 0.0) scalefactor = 1.0;
1986 L_WARNING(
"invalid compression type; using per-page default\n",
1994 for (i = 0; i < n; i++) {
1997 L_ERROR(
"pix[%d] not retrieved\n", procName, i);
2000 if (pixGetWidth(pixs) == 1) {
2001 L_INFO(
"placeholder image[%d] has w = 1\n", procName, i);
2005 if (scalefactor != 1.0)
2006 pix =
pixScale(pixs, scalefactor, scalefactor);
2010 scaledres = (l_int32)(res * scalefactor);
2014 L_ERROR(
"encoding type selection failed for pix[%d]\n",
2020 0, 0, scaledres, title, NULL, 0);
2023 L_ERROR(
"pdf encoding failed for pix[%d]\n", procName, i);
2032 L_ERROR(
"no pdf files made\n", procName);
2041 for (i = 0; i < n; i++) {
2066 l_int32 i, n, nboxes;
2069 PROCNAME(
"pixacompWriteStreamInfo");
2072 return ERROR_INT(
"fp not defined", procName, 1);
2074 return ERROR_INT(
"pixac not defined", procName, 1);
2077 fprintf(fp,
"Pixacomp Info for %s:\n", text);
2079 fprintf(fp,
"Pixacomp Info:\n");
2082 fprintf(fp,
"Number of pixcomp: %d\n", n);
2083 fprintf(fp,
"Size of pixcomp array alloc: %d\n", pixac->
nalloc);
2084 fprintf(fp,
"Offset of index into array: %d\n", pixac->
offset);
2086 fprintf(fp,
"Boxa has %d boxes\n", nboxes);
2088 fprintf(fp,
"Boxa is empty\n");
2089 for (i = 0; i < n; i++) {
2110 PROCNAME(
"pixcompWriteStreamInfo");
2113 return ERROR_INT(
"fp not defined", procName, 1);
2115 return ERROR_INT(
"pixc not defined", procName, 1);
2118 fprintf(fp,
" Pixcomp Info for %s:", text);
2120 fprintf(fp,
" Pixcomp Info:");
2121 fprintf(fp,
" width = %d, height = %d, depth = %d\n",
2122 pixc->
w, pixc->
h, pixc->
d);
2123 fprintf(fp,
" xres = %d, yres = %d, size in bytes = %lu\n",
2126 fprintf(fp,
" has colormap\n");
2128 fprintf(fp,
" no colormap\n");
2129 if (pixc->
comptype < NumImageFileFormatExtensions) {
2130 fprintf(fp,
" comptype = %s (%d)\n",
2133 fprintf(fp,
" Error!! Invalid comptype index: %d\n", pixc->
comptype);
2173 PROCNAME(
"pixacompDisplayTiledAndScaled");
2176 return (
PIX *)ERROR_PTR(
"pixac not defined", procName, NULL);
2179 return (
PIX *)ERROR_PTR(
"pixa not made", procName, NULL);
2182 background, spacing, border);
BOXA * boxaReadStream(FILE *fp)
boxaReadStream()
l_int32 selectDefaultPdfEncoding(PIX *pix, l_int32 *ptype)
selectDefaultPdfEncoding()
l_int32 pixacompReplacePix(PIXAC *pixac, l_int32 index, PIX *pix, l_int32 comptype)
pixacompReplacePix()
l_int32 boxaExtendArray(BOXA *boxa)
boxaExtendArray()
PIXAC * pixacompCreateFromPixa(PIXA *pixa, l_int32 comptype, l_int32 accesstype)
pixacompCreateFromPixa()
PIX * pixacompGetPix(PIXAC *pixac, l_int32 index)
pixacompGetPix()
l_int32 pixacompGetOffset(PIXAC *pixac)
pixacompGetOffset()
l_int32 ptraConcatenatePdfToData(L_PTRA *pa_data, SARRAY *sa, l_uint8 **pdata, size_t *pnbytes)
ptraConcatenatePdfToData()
PIXC * pixcompCreateFromPix(PIX *pix, l_int32 comptype)
pixcompCreateFromPix()
l_int32 pixcompGetDimensions(PIXC *pixc, l_int32 *pw, l_int32 *ph, l_int32 *pd)
pixcompGetDimensions()
l_int32 boxaWriteStream(FILE *fp, BOXA *boxa)
boxaWriteStream()
l_int32 pixacompGetBoxaCount(PIXAC *pixac)
pixacompGetBoxaCount()
PIX * pixCreateFromPixcomp(PIXC *pixc)
pixCreateFromPixcomp()
PIXA * pixaCreate(l_int32 n)
pixaCreate()
PIXAC * pixacompRead(const char *filename)
pixacompRead()
l_int32 pixacompAddPix(PIXAC *pixac, PIX *pix, l_int32 comptype)
pixacompAddPix()
l_int32 pixConvertToPdfData(PIX *pix, l_int32 type, l_int32 quality, l_uint8 **pdata, size_t *pnbytes, l_int32 x, l_int32 y, l_int32 res, const char *title, L_PDF_DATA **plpd, l_int32 position)
pixConvertToPdfData()
char * stringNew(const char *src)
stringNew()
PIXA * pixaCreateFromPixacomp(PIXAC *pixac, l_int32 accesstype)
pixaCreateFromPixacomp()
l_int32 boxaAddBox(BOXA *boxa, BOX *box, l_int32 copyflag)
boxaAddBox()
l_int32 pixacompSetOffset(PIXAC *pixac, l_int32 offset)
pixacompSetOffset()
PIXAC * pixacompReadMem(const l_uint8 *data, size_t size)
pixacompReadMem()
l_int32 pixacompGetPixDimensions(PIXAC *pixac, l_int32 index, l_int32 *pw, l_int32 *ph, l_int32 *pd)
pixacompGetPixDimensions()
PIX * pixCreate(l_int32 width, l_int32 height, l_int32 depth)
pixCreate()
FILE * fopenReadFromMemory(const l_uint8 *data, size_t size)
fopenReadFromMemory()
l_int32 pixReadHeaderMem(const l_uint8 *data, size_t size, l_int32 *pformat, l_int32 *pw, l_int32 *ph, l_int32 *pbps, l_int32 *pspp, l_int32 *piscmap)
pixReadHeaderMem()
BOXA * boxaCopy(BOXA *boxa, l_int32 copyflag)
boxaCopy()
void boxaDestroy(BOXA **pboxa)
boxaDestroy()
PIXAC * pixacompCreate(l_int32 n)
pixacompCreate()
l_uint8 * l_binaryCopy(l_uint8 *datas, size_t size)
l_binaryCopy()
l_int32 boxaJoin(BOXA *boxad, BOXA *boxas, l_int32 istart, l_int32 iend)
boxaJoin()
BOX * pixacompGetBox(PIXAC *pixac, l_int32 index, l_int32 accesstype)
pixacompGetBox()
PIX * pixReadMem(const l_uint8 *data, size_t size)
pixReadMem()
void * reallocNew(void **pindata, l_int32 oldsize, l_int32 newsize)
reallocNew()
l_int32 findFileFormat(const char *filename, l_int32 *pformat)
findFileFormat()
l_int32 ptraAdd(L_PTRA *pa, void *item)
ptraAdd()
l_int32 pixacompGetBoxGeometry(PIXAC *pixac, l_int32 index, l_int32 *px, l_int32 *py, l_int32 *pw, l_int32 *ph)
pixacompGetBoxGeometry()
BOX * boxClone(BOX *box)
boxClone()
l_int32 pixacompConvertToPdf(PIXAC *pixac, l_int32 res, l_float32 scalefactor, l_int32 type, l_int32 quality, const char *title, const char *fileout)
pixacompConvertToPdf()
#define PIXACOMP_VERSION_NUMBER
l_uint8 * l_binaryRead(const char *filename, size_t *pnbytes)
l_binaryRead()
static const l_int32 L_INSERT
L_PTRA * ptraCreate(l_int32 n)
ptraCreate()
l_int32 pixaAddPix(PIXA *pixa, PIX *pix, l_int32 copyflag)
pixaAddPix()
PIXAC * pixacompCreateWithInit(l_int32 n, l_int32 offset, PIX *pix, l_int32 comptype)
pixacompCreateWithInit()
l_int32 pixcompDetermineFormat(l_int32 comptype, l_int32 d, l_int32 cmapflag, l_int32 *pformat)
pixcompDetermineFormat()
l_int32 pixacompAddPixcomp(PIXAC *pixac, PIXC *pixc, l_int32 copyflag)
pixacompAddPixcomp()
PIXAC * pixacompInterleave(PIXAC *pixac1, PIXAC *pixac2)
pixacompInterleave()
l_int32 boxGetGeometry(BOX *box, l_int32 *px, l_int32 *py, l_int32 *pw, l_int32 *ph)
boxGetGeometry()
FILE * fopenWriteWinTempfile()
fopenWriteWinTempfile()
char * sarrayGetString(SARRAY *sa, l_int32 index, l_int32 copyflag)
sarrayGetString()
PIXAC * pixacompCreateFromFiles(const char *dirname, const char *substr, l_int32 comptype)
pixacompCreateFromFiles()
PIXAC * pixacompReadStream(FILE *fp)
pixacompReadStream()
PIX * pixClone(PIX *pixs)
pixClone()
PIX * pixaDisplayTiledAndScaled(PIXA *pixa, l_int32 outdepth, l_int32 tilewidth, l_int32 ncols, l_int32 background, l_int32 spacing, l_int32 border)
pixaDisplayTiledAndScaled()
PIXC * pixacompGetPixcomp(PIXAC *pixac, l_int32 index, l_int32 copyflag)
pixacompGetPixcomp()
l_int32 pixGetResolution(PIX *pix, l_int32 *pxres, l_int32 *pyres)
pixGetResolution()
l_int32 ptraGetActualCount(L_PTRA *pa, l_int32 *pcount)
ptraGetActualCount()
void pixacompDestroy(PIXAC **ppixac)
pixacompDestroy()
void pixDestroy(PIX **ppix)
pixDestroy()
static l_int32 pixacompExtendArray(PIXAC *pixac)
pixacompExtendArray()
l_int32 pixacompWriteMem(l_uint8 **pdata, size_t *psize, PIXAC *pixac)
pixacompWriteMem()
l_int32 pixacompJoin(PIXAC *pixacd, PIXAC *pixacs, l_int32 istart, l_int32 iend)
pixacompJoin()
SARRAY * getSortedPathnamesInDirectory(const char *dirname, const char *substr, l_int32 first, l_int32 nfiles)
getSortedPathnamesInDirectory()
FILE * fopenWriteStream(const char *filename, const char *modestring)
fopenWriteStream()
l_int32 pixSetResolution(PIX *pix, l_int32 xres, l_int32 yres)
pixSetResolution()
PIXAC * pixacompCreateFromSA(SARRAY *sa, l_int32 comptype)
pixacompCreateFromSA()
void ptraDestroy(L_PTRA **ppa, l_int32 freeflag, l_int32 warnflag)
ptraDestroy()
FILE * fopenReadStream(const char *filename)
fopenReadStream()
l_uint8 * l_binaryReadStream(FILE *fp, size_t *pnbytes)
l_binaryReadStream()
PIX * pixacompDisplayTiledAndScaled(PIXAC *pixac, l_int32 outdepth, l_int32 tilewidth, l_int32 ncols, l_int32 background, l_int32 spacing, l_int32 border)
pixacompDisplayTiledAndScaled()
l_int32 sarrayGetCount(SARRAY *sa)
sarrayGetCount()
PIX * pixRead(const char *filename)
pixRead()
char * pixGetText(PIX *pix)
pixGetText()
l_int32 l_binaryWrite(const char *filename, const char *operation, void *data, size_t nbytes)
l_binaryWrite()
PIXC * pixcompCreateFromString(l_uint8 *data, size_t size, l_int32 copyflag)
pixcompCreateFromString()
l_int32 pixacompAddBox(PIXAC *pixac, BOX *box, l_int32 copyflag)
pixacompAddBox()
PIX * pixaGetPix(PIXA *pixa, l_int32 index, l_int32 accesstype)
pixaGetPix()
PIXC * pixcompCreateFromFile(const char *filename, l_int32 comptype)
pixcompCreateFromFile()
void * ptraRemove(L_PTRA *pa, l_int32 index, l_int32 flag)
ptraRemove()
BOX * boxCopy(BOX *box)
boxCopy()
PIXC * pixcompCopy(PIXC *pixcs)
pixcompCopy()
void pixcompDestroy(PIXC **ppixc)
pixcompDestroy()
BOXA * boxaCreate(l_int32 n)
boxaCreate()
void boxDestroy(BOX **pbox)
boxDestroy()
l_int32 pixacompReplacePixcomp(PIXAC *pixac, l_int32 index, PIXC *pixc)
pixacompReplacePixcomp()
l_int32 boxaGetCount(BOXA *boxa)
boxaGetCount()
l_int32 pixacompGetCount(PIXAC *pixac)
pixacompGetCount()
void l_byteaDestroy(L_BYTEA **pba)
l_byteaDestroy()
l_int32 pixGetDimensions(PIX *pix, l_int32 *pw, l_int32 *ph, l_int32 *pd)
pixGetDimensions()
l_int32 pixacompWriteStreamInfo(FILE *fp, PIXAC *pixac, const char *text)
pixacompWriteStreamInfo()
l_int32 pixacompWrite(const char *filename, PIXAC *pixac)
pixacompWrite()
PIX * pixScale(PIX *pixs, l_float32 scalex, l_float32 scaley)
pixScale()
void pixaDestroy(PIXA **ppixa)
pixaDestroy()
l_int32 pixacompWriteStream(FILE *fp, PIXAC *pixac)
pixacompWriteStream()
L_BYTEA * l_byteaInitFromMem(l_uint8 *data, size_t size)
l_byteaInitFromMem()
l_int32 pixaGetCount(PIXA *pixa)
pixaGetCount()
l_int32 pixcompWriteStreamInfo(FILE *fp, PIXC *pixc, const char *text)
pixcompWriteStreamInfo()
BOXA * pixacompGetBoxa(PIXAC *pixac, l_int32 accesstype)
pixacompGetBoxa()
l_int32 pixSetText(PIX *pix, const char *textstring)
pixSetText()
void sarrayDestroy(SARRAY **psa)
sarrayDestroy()
l_int32 pixacompConvertToPdfData(PIXAC *pixac, l_int32 res, l_float32 scalefactor, l_int32 type, l_int32 quality, const char *title, l_uint8 **pdata, size_t *pnbytes)
pixacompConvertToPdfData()
BOXA * pixaGetBoxa(PIXA *pixa, l_int32 accesstype)
pixaGetBoxa()