Gem Version Build Status

This gem is a Ruby binding for the libvips image processing library.

Programs that use ruby-vips don’t manipulate images directly, instead they create pipelines of image processing operations building on a source image. When the end of the pipe is connected to a destination, the whole pipeline executes at once, streaming the image in parallel from source to destination a section at a time. Because ruby-vips is parallel, it’s quick, and because it doesn’t need to keep entire images in memory, it’s light.



It’s just:

$ gem install ruby-vips

or include it in Gemfile:

ruby gem 'ruby-vips'

On Windows, you’ll need to set the RUBY_DLL_PATH environment variable to point to the libvips bin directory.


```ruby require ‘vips’

im = Vips::Image.new_from_file filename

put im at position (100, 100) in a 3000 x 3000 pixel image,

# make the other pixels in the image by mirroring im up / down / # left / right, see # im = im.embed 100, 100, 3000, 3000, extend: :mirror

multiply the green (middle) band by 2, leave the other two alone

im *= [1, 2, 1]

make an image from an array constant, convolve with it

mask = Vips::Image.new_from_array [ [-1, -1, -1], [-1, 16, -1], [-1, -1, -1]], 8 im = im.conv mask, precision: :integer

finally, write the result back to a file on disk

im.write_to_file output_filename ```

The Vips section in the API docs has a tutorial introduction with examples.

ruby-vips has API documentation. The libvips reference manual has a complete explanation of every method.

The example/ directory has some simple example programs.


The benchmark at vips-benchmarks loads a large image, crops, shrinks, sharpens and saves again, and repeats 10 times.

```text real time in seconds, fastest of five runs benchmark tiff jpeg ruby-vips.rb 0.85 0.78 image-magick 2.03 2.44 rmagick.rb 3.87 3.89

peak memory use in kb benchmark peak RES ruby-vips.rb 43864 rmagick.rb 788768 ```

See also benchmarks at the official libvips website.