Makes a correction to the documentation for all boolean methods. Refactors methods in image_arithmetic.c and image_boolean.c that can accept a variety of arguments. Adds Image#and, Image#or, Image#xor and aliases for them, &, |, ^
VIPS.debug_info prints memory allocation information to stdout. This is useful when looking for memory leaks. Added support for default VIPS command line options.
Should be okay to use RSpec2 once the final is out.
We were creating VipsImage Object but it was not being closed after write.
Transcribed glib documentation and man pages from the original vips sources. In the process, had to jump through some hoops to get rdoc to properly recognize classes and methods. Rdoc2 still doesn't like it, but I prefer the appearance of rdoc 1 anyways.
Lots of small API cleanups after auditing all methods. For example, instead of Image#shrink(3, 3) you can now call Image#shrink(3). Integer masks and double masks are now interchangable, as long as the matrix has all-integer coefficients. Also, all methods that accept masks now can optionally accept a ruby array.
The generic reader & writer methods are accessible through Image#new, Image#write. libvips has heuristics to figure out which format the file will be read or written in. Reader#recognized? works for most Reader subclasses. It checks file signatures to quickly see if a file is of a given format. I.e. JPEGReader.recognized?("/path/to/img.jpg") # => true / false
…to subclasses of the Writer class. The new writer classes make it easier to set format writing options. Before, options were coded into the write path, i.e. via: im.to_jpeg("myjpeg.jpg:66") # save the image as a jpeg with compression level 66 With the new writer classes, this can be done via: jpeg = im.to_jpeg jpeg.compression = 66 jpeg.write("myjpeg.jpg") A shortcut is to pass an option hash to Image#to_jpeg: im.to_jpeg(:compression => 66).write("myjpeg.jpg") Header methods have been moved out of the Image class and into the writer classes.