libvips 是一个需求驱动的多线程图像处理库。与类似的库相比,libvips运行速度快,占用的内存很少。
它有大约300个操作,包括算术,直方图,卷积,形态学操作,频率滤波,颜色,重采样,统计等。它支持多种数字类型,从8位int到128位复杂。图像可以包含任意数量的波段。它支持各种图像格式,包括JPEG,TIFF,PNG,WebP,HEIC,FITS,Matlab,OpenEXR,PDF,SVG,HDR,PPM / PGM / PFM,CSV,GIF,Analyze,NIfTI,DeepZoom和OpenSlide 。它还可以通过ImageMagick或GraphicsMagick加载图像,让它可以使用像DICOM这样的格式。
它附带了C,C ++和命令行的绑定。完整绑定可用于Ruby,Python,PHP,C#/ .NET,Go和Lua。 libvips用作图像处理引擎,由sharp(on node.js),bimg,sharp for Go,Ruby on Rails,carrierwave-vips,mediawiki,PhotoFlow等。官方libvips GUI是nip2,电子表格和照片编辑器的奇怪组合。
示例代码:
const char *filename;
VipsImage *in = vips_image_new_from_file (filename, NULL);
const int x = 10;
const int y = 10;
const int width = 1000;
const int height = 1000;
VipsImage *out;
if (vips_embed (in, &out, x, y, width, height, NULL))
error_handling();