Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/libvips/ruby-vips
Ruby extension for the libvips image processing library.
https://github.com/libvips/ruby-vips
image-processing libvips ruby
Last synced: 3 days ago
JSON representation
Ruby extension for the libvips image processing library.
- Host: GitHub
- URL: https://github.com/libvips/ruby-vips
- Owner: libvips
- License: mit
- Created: 2011-10-11T16:45:42.000Z (over 13 years ago)
- Default Branch: master
- Last Pushed: 2024-11-04T12:28:25.000Z (3 months ago)
- Last Synced: 2025-01-20T06:06:38.565Z (6 days ago)
- Topics: image-processing, libvips, ruby
- Language: Ruby
- Homepage:
- Size: 9.47 MB
- Stars: 840
- Watchers: 16
- Forks: 60
- Open Issues: 20
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.txt
Awesome Lists containing this project
- awesome-ruby - ruby-vips - A binding for the libvips image processing library. (Image Processing)
README
# ruby-vips
[![Gem Version](https://badge.fury.io/rb/ruby-vips.svg)](https://badge.fury.io/rb/ruby-vips)
[![Test](https://github.com/libvips/ruby-vips/workflows/Test/badge.svg)](https://github.com/libvips/ruby-vips/actions?query=workflow%3ATest)This gem is a Ruby binding for the [libvips image processing
library](https://libvips.github.io/libvips). It has been tested on
Linux, macOS and Windows, and with ruby 2, ruby 3 and jruby. It uses
[ruby-ffi](https://github.com/ffi/ffi) to call functions in the libvips
library.libvips is a [demand-driven, horizontally
threaded](https://github.com/libvips/libvips/wiki/Why-is-libvips-quick)
image processing library. Compared to similar
libraries, [libvips runs quickly and uses little
memory](https://github.com/libvips/libvips/wiki/Speed-and-memory-use).
libvips is licensed under the [LGPL
2.1+](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html).## Install on linux and macOS
Install the libvips binary with your package manager (eg. `apt install
libvips42` or perhaps `brew install vips`, see the [libvips install
instructions](https://libvips.github.io/libvips/install.html)) then install
this gem with:```
gem install ruby-vips
```Or include `gem "ruby-vips"` in your gemfile.
## Install on Windows
The gemspec will pull in the msys libvips for you, so all you need is:
```
gem install ruby-vips
```Or include `gem "ruby-vips"` in your gemfile.
Tested with the ruby and msys from choco, but others may work.
## Example
```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
# https://libvips.github.io/libvips/API/current/libvips-conversion.html#vips-embed
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
```## Documentation
There are [full API docs for ruby-vips on
rubydoc](https://www.rubydoc.info/gems/ruby-vips). This sometimes has issues
updating, so we have a [copy on the gh-pages for this site as
well](http://libvips.github.io/ruby-vips), which
should always work.See the `Vips` section in the docs for a [tutorial introduction with
examples](https://www.rubydoc.info/gems/ruby-vips/Vips).The [libvips reference manual](https://libvips.github.io/libvips/API/current/)
has a complete explanation of every method.The [`example/`](https://github.com/libvips/ruby-vips/tree/master/example)
directory has some simple example programs.## Benchmarks
The benchmark at [vips-benchmarks](https://github.com/jcupitt/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.89peak memory use in kb
benchmark peak RES
ruby-vips.rb 43864
rmagick.rb 788768
```See also [benchmarks at the official libvips
website](https://github.com/libvips/libvips/wiki/Speed-and-memory-use).