Leptonica
1.54
|
l_int32 pixacompAddBox | ( | PIXAC * | pixac, |
BOX * | box, | ||
l_int32 | copyflag | ||
) |
Input: pixac box copyflag (L_INSERT, L_COPY) Return: 0 if OK, 1 on error
l_int32 pixacompAddPix | ( | PIXAC * | pixac, |
PIX * | pix, | ||
l_int32 | comptype | ||
) |
Input: pixac pix (to be added) comptype (IFF_DEFAULT, IFF_TIFF_G4, IFF_PNG, IFF_JFIF_JPEG) Return: 0 if OK; 1 on error
Notes: (1) The array is filled up to the (n-1)-th element, and this converts the input pix to a pixcomp and adds it at the n-th position.
l_int32 pixacompAddPixcomp | ( | PIXAC * | pixac, |
PIXC * | pixc | ||
) |
Input: pixac pixc (to be added by insertion) Return: 0 if OK; 1 on error
l_int32 pixacompConvertToPdf | ( | PIXAC * | pixac, |
l_int32 | res, | ||
l_float32 | scalefactor, | ||
l_int32 | type, | ||
l_int32 | quality, | ||
const char * | title, | ||
const char * | fileout | ||
) |
Input: pixac (containing images all at the same resolution) res (override the resolution of each input image, in ppi; use 0 to respect the resolution embedded in the input) scalefactor (scaling factor applied to each image; > 0.0) type (encoding type (L_JPEG_ENCODE, L_G4_ENCODE, L_FLATE_ENCODE, or L_DEFAULT_ENCODE for default) quality (used for JPEG only; 0 for default (75)) title (<optional> pdf title) fileout (pdf file of all images) Return: 0 if OK, 1 on error
Notes: (1) This follows closely the function pixaConvertToPdf() in pdfio.c. (2) The images are encoded with G4 if 1 bpp; JPEG if 8 bpp without colormap and many colors, or 32 bpp; FLATE for anything else. (3) The scalefactor must be > 0.0; otherwise it is set to 1.0. (4) Specifying one of the three encoding types for forces all images to be compressed with that type. Use 0 to have the type determined for each image based on depth and whether or not it has a colormap.
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 | ||
) |
Input: pixac (containing images all at the same resolution) res (input resolution of all images) scalefactor (scaling factor applied to each image; > 0.0) type (encoding type (L_JPEG_ENCODE, L_G4_ENCODE, L_FLATE_ENCODE, or L_DEFAULT_ENCODE for default) quality (used for JPEG only; 0 for default (75)) title (<optional> pdf title) &data (<return> output pdf data (of all images) &nbytes (<return> size of output pdf data) Return: 0 if OK, 1 on error
Notes: (1) See pixacompConvertToPdf().
PIXAC* pixacompCreate | ( | l_int32 | n | ) |
Input: n (initial number of ptrs) Return: pixac, or null on error
PIXAC* pixacompCreateFromFiles | ( | const char * | dirname, |
const char * | substr, | ||
l_int32 | comptype | ||
) |
Input: dirname substr (<optional> substring filter on filenames; can be null) comptype (IFF_DEFAULT, IFF_TIFF_G4, IFF_PNG, IFF_JFIF_JPEG) Return: pixac, or null on error
Notes: (1) is the full path for the directory. (2) is the part of the file name (excluding the directory) that is to be matched. All matching filenames are read into the Pixa. If substr is NULL, all filenames are read into the Pixa. (3) Use == IFF_DEFAULT to have the compression type automatically determined for each file. (4) If the comptype is invalid for a file, the default will be substituted.
PIXAC* pixacompCreateFromPixa | ( | PIXA * | pixa, |
l_int32 | comptype, | ||
l_int32 | accesstype | ||
) |
Input: pixa comptype (IFF_DEFAULT, IFF_TIFF_G4, IFF_PNG, IFF_JFIF_JPEG) accesstype (L_COPY, L_CLONE, L_COPY_CLONE) Return: 0 if OK, 1 on error
Notes: (1) If == IFF_DEFAULT, the conversion format for each image is chosen automatically. Otherwise, we use the specified format unless it can't be done (e.g., jpeg for a 1, 2 or 4 bpp pix, or a pix with a colormap), in which case we use the default (assumed best) compression. (2) is used to extract a boxa from .
PIXAC* pixacompCreateFromSA | ( | SARRAY * | sa, |
l_int32 | comptype | ||
) |
Input: sarray (full pathnames for all files) comptype (IFF_DEFAULT, IFF_TIFF_G4, IFF_PNG, IFF_JFIF_JPEG) Return: pixac, or null on error
Notes: (1) Use == IFF_DEFAULT to have the compression type automatically determined for each file. (2) If the comptype is invalid for a file, the default will be substituted.
Input: n (initial number of ptrs) offset (difference: accessor index - pixacomp array index) pix (<optional> initialize each ptr in pixacomp to this pix; can be NULL) comptype (IFF_DEFAULT, IFF_TIFF_G4, IFF_PNG, IFF_JFIF_JPEG) Return: pixac, or null on error
Notes: (1) Initializes a pixacomp to be fully populated with , compressed using . If == NULL, is ignored. (2) Typically, the array is initialized with a tiny pix. This is most easily done by setting == NULL, causing initialization of each array element with a tiny placeholder pix (w = h = d = 1), using comptype = IFF_TIFF_G4 . (3) Example usage: // Generate pixacomp for pages 30 - 49. This has an array // size of 20 and the page number offset is 30. PixaComp *pixac = pixacompCreateWithInit(20, 30, NULL, IFF_TIFF_G4); // Now insert png-compressed images into the initialized array for (pageno = 30; pageno < 50; pageno++) { Pix *pixt = ... // derived from image[pageno] if (pixt) pixacompReplacePix(pixac, pageno, pixt, IFF_PNG); pixDestroy(&pixt); } The result is a pixac with 20 compressed strings, and with selected pixt replacing the placeholders. To extract the image for page 38, which is decompressed from element 8 in the array, use: pixt = pixacompGetPix(pixac, 38);
void pixacompDestroy | ( | PIXAC ** | ppixac | ) |
Input: &pixac (<to be="" nulled>="">) Return: void
Notes: (1) Always nulls the input ptr.
PIX* pixacompDisplayTiledAndScaled | ( | PIXAC * | pixac, |
l_int32 | outdepth, | ||
l_int32 | tilewidth, | ||
l_int32 | ncols, | ||
l_int32 | background, | ||
l_int32 | spacing, | ||
l_int32 | border | ||
) |
pixacompDisplayTiledAndScaled()
Input: pixac outdepth (output depth: 1, 8 or 32 bpp) tilewidth (each pix is scaled to this width) ncols (number of tiles in each row) background (0 for white, 1 for black; this is the color of the spacing between the images) spacing (between images, and on outside) border (width of additional black border on each image; use 0 for no border) Return: pix of tiled images, or null on error
Notes: (1) This is the same function as pixaDisplayTiledAndScaled(), except it works on a Pixacomp instead of a Pix. It is particularly useful for showing the images in a Pixacomp at reduced resolution. (2) This can be used to tile a number of renderings of an image that are at different scales and depths. (3) Each image, after scaling and optionally adding the black border, has width 'tilewidth'. Thus, the border does not affect the spacing between the image tiles. The maximum allowed border width is tilewidth / 5.
static l_int32 pixacompExtendArray | ( | PIXAC * | pixac | ) | [static] |
Input: pixac Return: 0 if OK; 1 on error
Notes: (1) We extend the boxa array simultaneously. This is necessary in case we are NOT adding boxes simultaneously with adding pixc. We always want the sizes of the pixac and boxa ptr arrays to be equal.
BOX* pixacompGetBox | ( | PIXAC * | pixac, |
l_int32 | index, | ||
l_int32 | accesstype | ||
) |
Input: pixac index (caller's view of index within pixac; includes offset) accesstype (L_COPY or L_CLONE) Return: box (if null, not automatically an error), or null on error
Notes: (1) The includes the offset, which must be subtracted to get the actual index into the ptr array. (2) There is always a boxa with a pixac, and it is initialized so that each box ptr is NULL. (3) In general, we expect that there is either a box associated with each pixc, or no boxes at all in the boxa. (4) Having no boxes is thus not an automatic error. Whether it is an actual error is determined by the calling program. If the caller expects to get a box, it is an error; see, e.g., pixacGetBoxGeometry().
BOXA* pixacompGetBoxa | ( | PIXAC * | pixac, |
l_int32 | accesstype | ||
) |
Input: pixac accesstype (L_COPY, L_CLONE, L_COPY_CLONE) Return: boxa, or null on error
l_int32 pixacompGetBoxaCount | ( | PIXAC * | pixac | ) |
Input: pixac Return: count, or 0 on error
l_int32 pixacompGetBoxGeometry | ( | PIXAC * | pixac, |
l_int32 | index, | ||
l_int32 * | px, | ||
l_int32 * | py, | ||
l_int32 * | pw, | ||
l_int32 * | ph | ||
) |
Input: pixac index (caller's view of index within pixac; includes offset) &x, &y, &w, &h (<optional return>="">; each can be null) Return: 0 if OK, 1 on error
Notes: (1) The includes the offset, which must be subtracted to get the actual index into the ptr array.
l_int32 pixacompGetCount | ( | PIXAC * | pixac | ) |
Input: pixac Return: count, or 0 if no pixa
l_int32 pixacompGetOffset | ( | PIXAC * | pixac | ) |
Input: pixac Return: offset, or 0 on error
Notes: (1) The offset is the difference between the caller's view of the index into the array and the actual array index. By default it is 0.
PIX* pixacompGetPix | ( | PIXAC * | pixac, |
l_int32 | index | ||
) |
Input: pixac index (caller's view of index within pixac; includes offset) Return: pix, or null on error
Notes: (1) The includes the offset, which must be subtracted to get the actual index into the ptr array.
PIXC* pixacompGetPixcomp | ( | PIXAC * | pixac, |
l_int32 | index | ||
) |
Input: pixac index (caller's view of index within pixac; includes offset) Return: pixc, or null on error
Notes: (1) The includes the offset, which must be subtracted to get the actual index into the ptr array. (2) Important: this is just a ptr to the pixc owned by the pixac. Do not destroy unless you are replacing the pixc.
l_int32 pixacompGetPixDimensions | ( | PIXAC * | pixac, |
l_int32 | index, | ||
l_int32 * | pw, | ||
l_int32 * | ph, | ||
l_int32 * | pd | ||
) |
Input: pixa index (caller's view of index within pixac; includes offset) &w, &h, &d (<optional return>="">; each can be null) Return: 0 if OK, 1 on error
Notes: (1) The includes the offset, which must be subtracted to get the actual index into the ptr array.
PIXAC* pixacompRead | ( | const char * | filename | ) |
Input: filename Return: pixac, or null on error
Notes: (1) Unlike the situation with serialized Pixa, where the image data is stored in png format, the Pixacomp image data can be stored in tiffg4, png and jpg formats.
PIXAC* pixacompReadStream | ( | FILE * | fp | ) |
Input: stream Return: pixac, or null on error
Input: pixac index (caller's view of index within pixac; includes offset) pix (owned by the caller) comptype (IFF_DEFAULT, IFF_TIFF_G4, IFF_PNG, IFF_JFIF_JPEG) Return: 0 if OK; 1 on error
Notes: (1) The includes the offset, which must be subtracted to get the actual index into the ptr array. (2) The input is converted to a pixc, which is then inserted into the pixac.
l_int32 pixacompReplacePixcomp | ( | PIXAC * | pixac, |
l_int32 | index, | ||
PIXC * | pixc | ||
) |
Input: pixac index (caller's view of index within pixac; includes offset) pixc (to replace existing one, which is destroyed) Return: 0 if OK; 1 on error
Notes: (1) The includes the offset, which must be subtracted to get the actual index into the ptr array. (2) The inserted is now owned by the pixac. The caller must not destroy it.
l_int32 pixacompSetOffset | ( | PIXAC * | pixac, |
l_int32 | offset | ||
) |
Input: pixac offset (non-negative) Return: 0 if OK, 1 on error
Notes: (1) The offset is the difference between the caller's view of the index into the array and the actual array index. By default it is 0.
l_int32 pixacompWrite | ( | const char * | filename, |
PIXAC * | pixac | ||
) |
Input: filename pixac Return: 0 if OK, 1 on error
Notes: (1) Unlike the situation with serialized Pixa, where the image data is stored in png format, the Pixacomp image data can be stored in tiffg4, png and jpg formats.
l_int32 pixacompWriteStream | ( | FILE * | fp, |
PIXAC * | pixac | ||
) |
Input: stream pixac Return: 0 if OK, 1 on error
l_int32 pixacompWriteStreamInfo | ( | FILE * | fp, |
PIXAC * | pixac, | ||
const char * | text | ||
) |
Input: fp (file stream) pixac text (<optional> identifying string; can be null) Return: 0 if OK, 1 on error
PIXA* pixaCreateFromPixacomp | ( | PIXAC * | pixac, |
l_int32 | accesstype | ||
) |
Input: pixac accesstype (L_COPY, L_CLONE, L_COPY_CLONE; for boxa) Return: pixa if OK, or null on error
PIXC* pixcompCreateFromFile | ( | const char * | filename, |
l_int32 | comptype | ||
) |
Input: filename comptype (IFF_DEFAULT, IFF_TIFF_G4, IFF_PNG, IFF_JFIF_JPEG) Return: pixc, or null on error
Notes: (1) Use == IFF_DEFAULT to have the compression type automatically determined. (2) If the comptype is invalid for this file, the default will be substituted.
PIXC* pixcompCreateFromPix | ( | PIX * | pix, |
l_int32 | comptype | ||
) |
Input: pix comptype (IFF_DEFAULT, IFF_TIFF_G4, IFF_PNG, IFF_JFIF_JPEG) Return: pixc, or null on error
Notes: (1) Use == IFF_DEFAULT to have the compression type automatically determined.
PIXC* pixcompCreateFromString | ( | l_uint8 * | data, |
size_t | size, | ||
l_int32 | copyflag | ||
) |
Input: data (compressed string) size (number of bytes) copyflag (L_INSERT or L_COPY) Return: pixc, or null on error
Notes: (1) This works when the compressed string is png, jpeg or tiffg4. (2) The copyflag determines if the data in the new Pixcomp is a copy of the input data.
void pixcompDestroy | ( | PIXC ** | ppixc | ) |
Input: &pixc <will be="" nulled>=""> Return: void
Notes: (1) Always nulls the input ptr.
Input: comptype (IFF_DEFAULT, IFF_TIFF_G4, IFF_PNG, IFF_JFIF_JPEG) d (pix depth) cmapflag (1 if pix to be compressed as a colormap; 0 otherwise) &format (return IFF_TIFF, IFF_PNG or IFF_JFIF_JPEG) Return: 0 if OK; 1 on error
Notes: (1) This determines the best format for a pix, given both the request () and the image characteristics. (2) If == IFF_DEFAULT, this does not necessarily result in png encoding. Instead, it returns one of the three formats that is both valid and most likely to give best compression. (3) If the pix cannot be compressed by the input value of , this selects IFF_PNG, which can compress all pix.
Input: pixc &w, &h, &d (<optional return>="">) Return: 0 if OK, 1 on error
l_int32 pixcompWriteStreamInfo | ( | FILE * | fp, |
PIXC * | pixc, | ||
const char * | text | ||
) |
Input: fp (file stream) pixc text (<optional> identifying string; can be null) Return: 0 if OK, 1 on error
PIX* pixCreateFromPixcomp | ( | PIXC * | pixc | ) |
Input: pixc Return: pix, or null on error
const char* ImageFileFormatExtensions[] |
const l_int32 INITIAL_PTR_ARRAYSIZE = 20 [static] |