[Image-SIG] Yet another image processing library
jcupitt at gmail.com
jcupitt at gmail.com
Tue Oct 7 12:00:04 CEST 2008
2007/7/30 <jcupitt at gmail.com>:
> I help maintain an image processing library called VIPS. We've just
> released a new stable version and one of the new features is a Python
> binding.
>
> http://www.vips.ecs.soton.ac.uk
I hope no one minds this announcement. We've just released a new
stable version of vips, 7.16.2, that improves the Python binding quite
a bit.
Good things about vips:
* fast, since it's written in C and has good SMP support
* low memory use, especially for large images and complex processing,
since it is demand-driven and keeps source images on disc where
possible
* many pixel formats, from 8 to 128-bit pixels, and any number of image bands
* >300 image processing operations available in Python
* LGPL license
Bad things about vips:
* no Python binding for Windows (though it ought to be easy to build)
* this new version is not yet available in all linuxes so you might
need to compile from source
* the Python binding is generated automatically from a C++ binding and
isn't very Pythonesque
More detail and benchmarks here:
http://www.vips.ecs.soton.ac.uk/index.php?title=Python
New stuff in this version:
* The varargs parts of the C++ API are now wrapped in Python, so you
can do things like building masks from lists:
mask = VMask.VIMask (3, 3, 2, 0,
[-1, -1, -1,
-1, 16, -1,
-1, -1, -1])
To make a 3x3 integer convolution mask, with scale == 2.
* The VImage class now has .tobuffer(), .frombuffer() and .tostring()
and .fromstring(), so you can efficiently move images between PIL and
VIPS. There are also a couple of utility functions to convert VIPS
headers to PIL headers and back. There's some sample code in SVN:
http://vips.svn.sourceforge.net/viewvc/vips/vips7/branches/vips-7.16/python/test/pilvips.py?view=markup
Although it won't copy over image metadata, like EXIF and ICC profiles, sadly.
John
More information about the Image-SIG
mailing list