diff -r 4e6e067b3472 -r 0260aeca943c README --- a/README Sun Sep 14 15:24:58 2014 +0300 +++ b/README Sun Sep 14 16:08:40 2014 +0300 @@ -1,16 +1,15 @@ -pngtile +# libpngtile Constant-time/memory tile-based handling of large PNG images. -ABOUT: - pngtile is a library (and associated command-line utility) offering efficient random access to partial regions of +## About + pngtile is a C library (and associated command-line utility) offering efficient random access to partial regions of very large PNG images (gigapixel range). For this purpose, the library linearly decodes the PNG image to an uncompressed memory-mapped file, which can then be later used to encode a portion of this raw pixel data back into a PNG image. - -NOTES: +## Notes The command-line utility is mainly intended for maintining the image caches and testing, primary usage is expected to be performed using the library interface directly. A simple Cython wrapper for a Python extension module is provided under python/. @@ -25,23 +24,26 @@ hexadecimal notation (--background 0xFFFFFF - for 24bpp RGB white), and consecutive regions of that color will be omitted in the cache file, which may provide significant gains in space efficiency. - -COMPILING: +## Build The library depends on libpng and pthreads. The code was developed and tested using: - - * libpng 1.2.15~beta5-3ubuntu0.1 - * NPTL 2.7 (glibc 2.7-10ubuntu5) + + * libpng12-dev png.h 1.2.15~beta5-3ubuntu0.1 + * libc6-dev pthread.h NPTL 2.7 (glibc 2.7-10ubuntu5) To compile dist versions, simply execute - make + $ make + + To compile source versions, execute: + + $ make dirs + $ make The libpngtile.so and pypngtile.so libraries will be placed under lib/, and the 'pngtile' binary under bin/. XXX: If compiling the pypngtile.so library with make fails, then `setup.py build_ext -i` should build it. - -USAGE: +## Usage Store the .png data files in a directory. You must have write access to the directory when updating the caches, which are written as a .cache file alongside the .png file. @@ -66,11 +68,24 @@ Alternatively, to not update an image's cache, use the -N/--no-update option. - -TODO/BUGS: +## Issues At this stage, the library is primarily designed to handle a specific set of PNG images, and hence does not support all aspects of the PNG format, nor any other image formats. The pt_images opened by main() are not cleaned up before process exit, due to the asynchronous nature of the tile render operation's accesses to the underlying pt_cache object. +# pypngtile + +Python extension for pngtile + +## Dependencies + + * python-cython + * python-dev + +## Build + + $ python setup.py build_ext + +