https://github.com/libvips/ruby-vips
Ruby extension for the libvips image processing library.
https://github.com/libvips/ruby-vips
Keywords
image-processing libvips ruby
Keywords from Contributors
activerecord activejob mvc rubygems feature-flag ruby-gem crash-reporting rack aws-sdk feature-toggle
Last synced: about 9 hours ago
JSON representation
Repository metadata
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 14 years ago)
- Default Branch: master
- Last Pushed: 2025-12-10T14:13:46.000Z (3 months ago)
- Last Synced: 2026-02-27T19:47:04.291Z (4 days ago)
- Topics: image-processing, libvips, ruby
- Language: Ruby
- Homepage:
- Size: 10.7 MB
- Stars: 887
- Watchers: 15
- Forks: 62
- Open Issues: 11
- Releases: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.txt
README.md
ruby-vips
This gem is a Ruby binding for the libvips image processing
library. It has been tested on
Linux, macOS and Windows, and with ruby 2, ruby 3 and jruby. It uses
ruby-ffi to call functions in the libvips
library.
libvips is a demand-driven, horizontally
threaded
image processing library. Compared to similar
libraries, libvips runs quickly and uses little
memory.
libvips is licensed under the LGPL
2.1+.
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) 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
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://www.libvips.org/API/current/method.Image.embed.html
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. This sometimes has issues
updating, so we have a copy on the gh-pages for this site as
well, which
should always work.
See the Vips section in the docs for a tutorial introduction with
examples.
The libvips reference manual
has a complete explanation of every method.
The example/
directory has some simple example programs.
Benchmarks
The benchmark at vips-benchmarks
loads a large image, crops, shrinks, sharpens and saves again, and repeats
10 times.
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
Owner metadata
- Name: libvips
- Login: libvips
- Email:
- Kind: organization
- Description: A fast image processing library with low memory needs.
- Website: https://libvips.github.io/libvips/
- Location:
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/26797616?v=4
- Repositories: 15
- Last ynced at: 2024-03-26T01:09:47.358Z
- Profile URL: https://github.com/libvips
GitHub Events
Total
- Delete event: 1
- Pull request event: 9
- Fork event: 1
- Issues event: 30
- Watch event: 41
- Issue comment event: 102
- Push event: 13
- Pull request review event: 2
- Pull request review comment event: 1
- Create event: 4
Last Year
- Delete event: 1
- Pull request event: 5
- Fork event: 1
- Issues event: 23
- Watch event: 24
- Issue comment event: 74
- Push event: 11
- Pull request review event: 2
- Pull request review comment event: 1
- Create event: 3
Committers metadata
Last synced: 7 days ago
Total Commits: 627
Total Committers: 31
Avg Commits per committer: 20.226
Development Distribution Score (DDS): 0.297
Commits in past year: 16
Committers in past year: 3
Avg Commits per committer in past year: 5.333
Development Distribution Score (DDS) in past year: 0.188
| Name | Commits | |
|---|---|---|
| John Cupitt | j****t@g****m | 441 |
| stanislaw | s****h@g****m | 46 |
| Anton Rieder | a****r@g****m | 32 |
| Timothy Elliott | t****e@h****m | 23 |
| Janko Marohnić | j****c@g****m | 12 |
| Kleis Auke Wolthuizen | g****b@k****l | 12 |
| Andrew Kane | a****w@c****m | 8 |
| Paul Keen | 1****g | 7 |
| Victor Maslov | n****n@g****m | 6 |
| sandstrom | a****r@s****m | 5 |
| Simon Schmid | s****n@a****h | 4 |
| Jeremy Echols | j****s@u****u | 3 |
| chendo | c****o | 3 |
| Felix Bünemann | b****n@l****o | 3 |
| Earlopain | 1****n | 2 |
| Jeremy Daer | j****y@b****m | 2 |
| Lars Kanis | k****s@c****e | 2 |
| Pavel Valena | p****a@r****m | 2 |
| Peter Goldstein | p****n@g****m | 2 |
| Alessandro Tagliapietra | t****o@g****m | 1 |
| Andrei Horak | l****y@g****m | 1 |
| Andrey Glushkov | a****v@s****m | 1 |
| Danielle Smith | d****i@h****m | 1 |
| Guillaume Wrobel | 2****l | 1 |
| Jean Boussier | j****r@g****m | 1 |
| Olle Jonsson | o****n@g****m | 1 |
| Rodrigo Argumedo | 7****o | 1 |
| Samuel Williams | s****s@o****z | 1 |
| Seve Salazar | s****o@g****m | 1 |
| dependabot[bot] | 4****] | 1 |
| and 1 more... | ||
Committer domains:
- oriontransfer.co.nz: 1
- hey.com: 1
- shakuro.com: 1
- redhat.com: 1
- comcard.de: 1
- basecamp.com: 1
- louis.info: 1
- uoregon.edu: 1
- at-point.ch: 1
- skovik.com: 1
- chartkick.com: 1
- kleisauke.nl: 1
- holymonkey.com: 1
Issue and Pull Request metadata
Last synced: 30 days ago
Total issues: 106
Total pull requests: 57
Average time to close issues: 10 months
Average time to close pull requests: 4 months
Total issue authors: 82
Total pull request authors: 18
Average comments per issue: 7.64
Average comments per pull request: 3.07
Merged pull request: 44
Bot issues: 0
Bot pull requests: 3
Past year issues: 12
Past year pull requests: 10
Past year average time to close issues: 22 days
Past year average time to close pull requests: 15 days
Past year issue authors: 11
Past year pull request authors: 4
Past year average comments per issue: 4.67
Past year average comments per pull request: 1.6
Past year merged pull request: 6
Past year bot issues: 0
Past year bot pull requests: 3
Top Issue Authors
- Nakilon (9)
- noraj (3)
- taylorthurlow (2)
- demitrious-tom (2)
- da2x (2)
- maximeg (2)
- jcupitt (2)
- brandoncc (2)
- tomasc (2)
- curi (2)
- ioquatix (2)
- dkam (2)
- kaspergrubbe (2)
- harukizaemon (2)
- malomalo (2)
Top Pull Request Authors
- kleisauke (10)
- jcupitt (9)
- pftg (7)
- ankane (5)
- Earlopain (4)
- dependabot[bot] (3)
- LocutusOfBorg (2)
- jeremy (2)
- jonknapp (2)
- petergoldstein (2)
- guillaumewrobel (2)
- aglushkov (2)
- rodrigoargumedo (2)
- sled (1)
- Nakilon (1)
Top Issue Labels
- bug (45)
- question (25)
- enhancement (9)
- in development (3)
- blocked-upstream (1)
- tip (1)
Top Pull Request Labels
- dependencies (3)
- github_actions (3)
Package metadata
- Total packages: 3
-
Total downloads:
- rubygems: 204,299,821 total
- Total docker downloads: 4,021,660
- Total dependent packages: 37 (may contain duplicates)
- Total dependent repositories: 31,856 (may contain duplicates)
- Total versions: 161
- Total maintainers: 3
gem.coop: ruby-vips
ruby-vips is a binding for the libvips image processing library. It is fast and it can process large images without loading the whole image in memory.
- Homepage: http://github.com/libvips/ruby-vips
- Documentation: http://www.rubydoc.info/gems/ruby-vips/
- Licenses: MIT
- Latest release: 2.3.0 (published 3 months ago)
- Last Synced: 2026-02-26T04:31:11.952Z (6 days ago)
- Versions: 53
- Dependent Packages: 0
- Dependent Repositories: 0
- Downloads: 102,211,988 Total
- Docker Downloads: 2,010,830
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Downloads: 0.275%
- Average: 0.421%
- Docker downloads count: 1.409%
- Maintainers (3)
rubygems.org: ruby-vips
ruby-vips is a binding for the libvips image processing library. It is fast and it can process large images without loading the whole image in memory.
- Homepage: http://github.com/libvips/ruby-vips
- Documentation: http://www.rubydoc.info/gems/ruby-vips/
- Licenses: MIT
- Latest release: 2.3.0 (published 3 months ago)
- Last Synced: 2026-02-25T10:31:47.752Z (6 days ago)
- Versions: 53
- Dependent Packages: 37
- Dependent Repositories: 31,856
- Downloads: 102,087,833 Total
- Docker Downloads: 2,010,830
-
Rankings:
- Dependent repos count: 0.191%
- Downloads: 0.413%
- Dependent packages count: 0.699%
- Average: 1.461%
- Docker downloads count: 2.033%
- Stargazers count: 2.068%
- Forks count: 3.361%
- Maintainers (3)
proxy.golang.org: github.com/libvips/ruby-vips
- Homepage:
- Documentation: https://pkg.go.dev/github.com/libvips/ruby-vips#section-documentation
- Licenses: mit
- Latest release: v8.7.0+incompatible (published almost 8 years ago)
- Last Synced: 2026-02-24T10:01:37.735Z (8 days ago)
- Versions: 55
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent packages count: 5.454%
- Average: 5.637%
- Dependent repos count: 5.82%
Score: 29.388904894246874