Palette-mode PNG images
ldo at geek-central.gen.new_zealand
Tue Nov 25 06:56:47 CET 2008
Lawrence D'Oliveiro wrote:
> Ideally I'd like to create a PNG file with just two bits per pixel, with
> four colour-table entries of my choice. I'm using PyCairo
> <http://www.cairographics.org/pycairo/> to do the drawing, but that
> doesn't seem to support colour-table images as far as I can tell. So I'm
> trying to figure out how to use PIL
> <http://www.pythonware.com/library/pil/handbook/index.htm> to save the
> images to PNG files with a suitable format.
For those who are interested, I finally gave up on PIL and resorted to direct calls to libpng via ctypes. This successfully lets me write 1-bit-per-pixel PNG images with colour tables of my choice.
One issue I found is that the png_set_packing call doesn't seem to work on my Gentoo AMD64 system. And Cairo and libpng use a different order for sub-byte pixels on little-endian platforms. So I have to do rearrangement of bits within each byte. Which is a bit slow in Python.
More information about the Python-list