libvips (original) (raw)

CI Fuzzing Status Coverity Status Gitter

libvips is a demand-driven, horizontally threadedimage processing library. Compared to similar libraries, libvips runs quickly and uses little memory. libvips is licensed under the LGPL-2.1-or-later.

It has around 300 operations covering arithmetic, histograms, convolution, morphological operations, frequency filtering, colour, resampling, statistics and others. It supports a large range of numeric types, from 8-bit int to 128-bit complex. Images can have any number of bands. It supports a good range of image formats, including JPEG, JPEG 2000, JPEG XL, TIFF, PNG, WebP, HEIC, AVIF, FITS, Matlab, OpenEXR, PDF, SVG, HDR, PPM / PGM / PFM, CSV, GIF, Analyze, NIfTI, DeepZoom, and OpenSlide. It can also load images via ImageMagick or GraphicsMagick, letting it work with formats like DICOM.

It comes with bindings for C,C++, and the command-line. Full bindings are available for Ruby,Python,PHP,.NET,Go,Lua, andJava. libvips is used as an image processing engine by sharp (on node.js),bimg,sharp for Go,Ruby on Rails,carrierwave-vips,mediawiki,PhotoFlow and others. The official libvips GUI is nip2, a strange combination of a spreadsheet and an photo editor.

The download area has the source code plus pre-compiled binaries for Windows; you can install on macOS with homebrew, MacPorts or Fink; and it’s available in most Linux package managers. See the install notes.

News

What's new in libvips 8.17

Here’s a summary of what’s new in libvips 8.17. Check theChangeLogif you need more details.

Introduction to nip4

nip4 is now mostly doneso this post tries to introduce this strange tool for people who’ve not come across it before.

nip4 for nip2 users

The test release of nip4 is now outand it seems to work OK on Linux, Windows and macOS. I thought I’d write a few notes for users of nip2 outlining the big changes and the bits of it that are still missing.

nip4 January progress

nip4 is pretty much done! It now loads the two largest workspaces I have correctly. I’ll do a bit more polishing and aim for an alpha release with pre-compiled binaries for flatpak and Windows by the end of February.

nip4 November progress

I’ve done another month on nip4 – plotting is in now, and I’ve done a first version of the new toolkit browser.

nip4 progress

libvips.org OpenCollective has generously given me a year of funding to complete nip4. This is an update of the libvips GUI, nip2, to the gtk4 toolkit, and to the vips8 API.

What's new in libvips 8.16

Here’s a summary of what’s new in libvips 8.16. Check theChangeLogif you need more details.

What's new in libvips 8.15

libvips 8.15 is now done, so here’s a summary of what’s new. Check theChangeLogif you need more details.

vipsdisp 2.5 is out

There’s a new version of vipsdisp, a gtk4 image viewer.

Charity bike ride

This isn’t libvips at all, but I’ve entered a charity bike ride:

What's new in libvips 8.14

libvips 8.14 is now done, so here’s a summary of what’s new. Check theChangeLogif you need more details.

What's new in libvips 8.13

libvips 8.13 is now done, so here’s a summary of what’s new. Check theChangeLogif you need more details.

New pyvips and php-vips

pyvips and php-vips have launched interesting new versions.

What's new in 8.12

Here’s a quick overview of what’s new in libvips 8.12. Check the ChangeLogif you need more details.

What's new in 8.11

libvips 8.11 is now out, so here’s a quick overview of what’s new. Check the ChangeLogif you need more details.

ruby-vips and image mutability

ruby-vips is now at version 2.1 with a few useful bug fixes and an interesting new mutate feature. This block makes it possible to modify images efficiently and safely.

libvips for WebAssembly

There's a new full libvips binding for the browser and Node.js. It supports reading and writing JPEG, PNG, WebP and TIFF images, it's on NPM, and it comes with TypeScript declarations.

What's new in 8.10

libvips 8.10 is now out, so here’s a quick overview of what’s new. Check the ChangeLogif you need more details.

What's new in 8.9

libvips 8.9 is now done, so here’s a quick overview of what’s new. Check the ChangeLogif you need more details.

True streaming for libvips

An interesting feature has just landed in libvips git master (and should be in the upcoming libvips 8.9): true streaming. This has been talked about on and off for five years or more, but it’s now finally happened! This post explains what this feature is and why it could be useful.

libvips on opencollective

Thanks to work by Lovell, libvips is now listed on opencollective.

pyvips in conda

Thanks to work by Sebastian Luna-Valero (@sebastian-luna-valero) and others, pyvips is now in conda!

libvips in OSS Fuzz

Thanks to work by Oscar Mira (@omira-sch), libvips has been in OSS Fuzz for about three weeks. I’m very happy to be able to report that only one real bug has been found so far, and none in the last five days.

What's new in 8.8

libvips 8.8 is now officially released, so here’s a quick overview of what’s new. Check theChangeLogif you need more details.

NIP getting started video

Here is a quick video on getting started with nip

Libre Graphics Meeting 2016

I gave a 15m introduction to vips talk at LGM 2016, and just came across the video. It might be interesting.

What's new in 8.7

libvips 8.7 is finally done!

libvips for .NET

There’s a new full libvips binding for .NET. It has a test-suite which passes with no memory leaks, it’s in NuGet, so it’s easy to install on Linux, macOS and Windows, and it has nice documentation:

What's new in 8.6

libvips 8.6 is done! Though it’s a bit late. This post summarizes what’s new – check theChangeLogif you need more details.

libvips for Ruby

There’s a new major release of ruby-vips, the Ruby binding for libvips: it’s now version 2.0. It has the same API (it passes the same test suite), but it’s simpler to install, works on Linux, macOS and Windows, it works with any Ruby (including JRuby), it’s smaller, more stable, and faster.

libvips for Python

There’s a new libvips binding for Python. It has the same API as the one that comes with libvips (it passes the same test suite), it’s very easy to install on Linux, macOS and Windows, it works with any Python, it should be smaller and more stable, and it has nice new documentation:

libvips for Lua

LuaJIT now has a full libvips binding. It’s the whole of libvips, it has a test-suite which passes with no memory leaks, and it’s in luarocks so it’s easy to install.

New website

We have a new website running from github pages. Hopefully this will be easier to use and less work to maintain.

What's new in 8.5

libvips 8.5 is done! This post summarizes what’s new in this release. Check the ChangeLog if you need more details.