- Document images
- Natural images
- Rasterop (aka bitblt)
- Affine transforms (scaling, translation, rotation, shear) on images of arbitrary pixel depth
- Projective and bilinear transforms
- Binary and grayscale morphology, rank order filters, and convolution
- Seedfill and connected components
- Image transformations with changes in pixel depth, both at the same scale and with scale change
- Pixelwise masking, blending, enhancement, arithmetic ops, etc.
- I/O for standard image formats (jpg, png, tiff, bmp, pnm, gif, ps, pdf, webp)
- Utilities to handle arrays of image-related data types (e.g., pixa, boxa, pta)
- Utilities for stacks, generic arrays, queues, heaps, lists; number and string arrays; etc.
- Octcube-based color quantization (w/ and w/out dithering)
- Modified median cut color quantization (w/ and w/out dithering)
- Skew determination of text images
- Adaptive normalization and binarization
- Segmentation of page images with mixed text and images
- Location of baselines and local skew determination
- jbig2 unsupervised classifier
- Border representations of 1 bpp images and raster conversion for SVG
- Postscript generation (levels 1, 2 and 3) of images for device-independent output
- PDF generation (G4, DCT, FLATE) of images for device-independent output
- Connectivity-preserving thinning and thickening of 1 bpp images
- Image warping (captcha, stereoscopic)
- Image dewarping based on content (textlines)
- Watershed transform
- Greedy splitting of components into rectangles
- Location of largest fg or bg rectangles in 1 bpp images
- Search for least-cost paths on binary and grayscale images
- Barcode reader for 1D barcodes (very early version as of 1.55)
- Efficient: image data is packed binary (into 32-bit words); operations on 32-bit data whenever possible
- Simple: small number of data structures; simplest implementations provided that are efficient
- Consistent: data allocated on the heap with simple ownership rules; function names usually begin with primary data structure (e.g., pix); simple code patterns throughout
- Robust: all ptr args checked; extensive use of accessors; exit not permitted
- Tested: thorough regression tests provided for most basic functions; valgrind tested
- ANSI C: automatically generated prototype header file
- Portable: endian-independent; builds in linux, osx, mingw, cygwin, windows
- Nearly thread-safe: ref counting on some structs
- Documentation: large number of in-line comments; web pages for further background
- Examples: many programs provided to test and show usage of approx. 2200 functions in the library