# libvips : an image processing library
[![CI](https://github.com/libvips/libvips/workflows/CI/badge.svg)](https://github.com/libvips/libvips/actions)
[![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/libvips.svg)](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=2&q=proj:libvips)
[![Coverity Status](https://scan.coverity.com/projects/6503/badge.svg)](https://scan.coverity.com/projects/jcupitt-libvips)
[![Gitter](https://badges.gitter.im/libvips/devchat.svg)](https://gitter.im/libvips/devchat?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
# Introduction
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).
It has around [300
operations](https://libvips.github.io/libvips/API/current/func-list.html)
covering arithmetic, histograms, convolution, morphological
operations, frequency filtering, colour, resampling,
statistics and others. It supports a large range of [numeric
types](https://libvips.github.io/libvips/API/current/VipsImage.html#VipsBandFormat),
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, JPEG2000, 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](https://libvips.github.io/libvips/API/current/using-from-c.html),
[C++](https://libvips.github.io/libvips/API/current/libvips-from-C++.html),
and the
[command-line](https://libvips.github.io/libvips/API/current/using-cli.html).
Full bindings are available for :
| Language | Binding |
|---|---|
| Ruby | [ruby-vips](https://rubygems.org/gems/ruby-vips) |
| Python | [pyvips](https://pypi.python.org/pypi/pyvips) |
| PHP | [php-vips](https://github.com/libvips/php-vips) |
| C# / .NET | [NetVips](https://www.nuget.org/packages/NetVips) |
| Go | [govips](https://github.com/davidbyttow/govips) |
| Lua | [lua-vips](https://github.com/libvips/lua-vips) |
| Crystal | [crystal-vips](https://github.com/naqvis/crystal-vips) |
| Elixir | [vix](https://github.com/akash-akya/vix) |
libvips is used as an image processing engine by:
| |
|---|
| [sharp (on node.js)](https://www.npmjs.org/package/sharp) |
| [imgproxy](https://github.com/imgproxy/imgproxy) |
| [bimg](https://github.com/h2non/bimg) |
| [sharp for Go](https://github.com/DAddYE/vips) |
| [Ruby on Rails](https://edgeguides.rubyonrails.org/active_storage_overview.html) |
| [carrierwave-vips](https://github.com/eltiare/carrierwave-vips) |
| [mediawiki](https://www.mediawiki.org/wiki/Extension:VipsScaler) |
| [PhotoFlow](https://github.com/aferrero2707/PhotoFlow) |
and others. The official libvips GUI is
[nip2](https://github.com/libvips/nip2), a strange combination of a
spreadsheet and a photo editor.
# Install
There are packages for most Unix-like operating systems, including
macOS. Check your package manager.
There are binaries for Windows in
[releases](https://github.com/libvips/libvips/releases).
The [libvips website](https://libvips.github.io/libvips) has [detailed
install notes](https://libvips.github.io/libvips/install.html).
# Building from source
libvips uses the [Meson build system](https://mesonbuild.com), version 0.56
or later. Meson can use [`ninja`](https://ninja-build.org), Visual Studio or
XCode as a backend, so you'll also need one of them.
libvips must have `build-essential`, `pkg-config`, `libglib2.0-dev`,
`libexpat1-dev`. See the **Dependencies** section below for a full list
of the libvips optional dependencies.
There are basic bash completions in `completions/`, see the README in there.
## Cheatsheet
```
cd libvips-x.y.x
meson setup build --prefix /my/install/prefix
cd build
meson compile
meson test
meson install
```
Check the output of `meson setup` carefully and make sure it found everything
you wanted it to find. Add arguments to `meson setup` to change the build
configuration.
- Add flags like `-Dnsgif=false` to turn libvips options on and off, see
`meson_options.txt` for a list of all the build options libvips supports.
- Add flags like `-Dmagick=disabled` to turn libvips dependencies on and off,
see `meson_options.txt` and the list below for a summary of all the libvips
dependencies.
- You might need to add `--libdir lib` on Debian if you don't want the arch
name in the library path.
- Add `--default-library static` for a static build.
- Use eg. `CC=clang CXX=clang++ meson setup ...` to change compiler.
- You can have many `build-dir`, pick whatever names you like, for example
one for release and one for debug.
There's a more comprehensive test suite you can run once libvips has been
installed. Use `pytest` in the libvips base directory.
## Optional dependencies
If suitable versions are found, libvips will add support for the following
libraries automatically. Packages are generally found with `pkg-config`,
so make sure that is working.
### libjpeg
Anything that is compatible with the IJG JPEG library. Use `mozjpeg` if you
can. Another option is `libjpeg-turbo`.
### libexif
If available, libvips adds support for EXIF metadata in JPEG files.
### librsvg
The usual SVG loader. If this is not present, vips will try to load SVGs
via imagemagick instead.
### PDFium
If present, libvips will attempt to load PDFs with PDFium. Download the
prebuilt pdfium binary from:
https://github.com/bblanchon/pdfium-binaries
Untar to the libvips install prefix, for example:
cd ~/vips
tar xf ~/pdfium-linux.tgz
Create a `pdfium.pc` like this (update the version number):
VIPSHOME=/home/john/vips
cat > $VIPSHOME/lib/pkgconfig/pdfium.pc << EOF
prefix=$VIPSHOME
exec_prefix=\${prefix}
libdir=\${exec_prefix}/lib
includedir=\${prefix}/include
Name: pdfium
Description: pdfium
Version: 4290
Requires:
Libs: -L\${libdir} -lpdfium
Cflags: -I\${includedir}
EOF
If PDFium is not detected, libvips will look for `poppler-glib` instead.
### poppler-glib
The Poppler PDF renderer, with a glib API. If this is not present, vips
will try to load PDFs via imagemagick.
### cgif
If available, libvips will save GIFs with
[cgif](https://github.com/dloebl/cgif). If this is not present, vips will
try to save gifs via imagemagick instead.
### libarchive
If available, libvips adds support for creating image pyramids with `dzsave`.
### libtiff
The TIFF library. It needs to be built with support for JPEG and
ZIP compression. 3.4b037 and later are known to be OK.
### fftw3
If libvips finds this library, it uses it for fourier transforms.
### lcms2
If present, `vips_icc_import()`, `vips_icc_export()` and `vips_icc_transform()`
can be used to manipulate images with ICC profiles.
### libspng
If present, libvips will load and save PNG files using libspng. If not, it
will look for the standard libpng package.
### libimagequant, quantizr
If one of these quantisation packages is present, libvips can write 8-bit
palette-ised PNGs and GIFs.
### ImageMagick, or optionally GraphicsMagick
If available, libvips adds support for loading and saving all
libMagick-supported image file types. You can enable and disable load and save
separately.
Imagemagick 6.9+ needs to have been built with `--with-modules`. Most packaged
IMs are, I think.
If you are going to be using libvips with untrusted images, perhaps in a
web server, for example, you should consider the security implications of
enabling a package with such a large attack surf
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
pyvips 是一个用于处理图像的 Python 库,它是 libvips 图像处理库的 Python 接口。libvips 是一个高性能的图像处理库,特别适合处理大型图像,并且能够高效地执行颜色转换、复合、重采样等操作。由于 libvips 对内存使用进行了优化,它的速度通常比很多其他的图像处理库更快,同时使用的内存更少。 pyvips 提供了一套易于使用的 Python函数来访问 libvips 的功能,它支持大量的图像格式,能处理矢量操作,并且可以无缝地和NumPy或Pillow等Python库集成,允许进行复杂的图像处理和分析任务。由于 pyvips使用了基于C实现的libvips库,所以它的性能非常接近于直接使用C语言编写的代码。 pyvips 中大部分函数都是即时执行的(调用时立即处理并返回结果),但也支持延迟计算,这使得它能够构建复杂的处理管道,最后一步骤再计算输出,这样可以进一步优化性能。 由于它的高性能特性,pyvips 通常被用于需要处理大型或高分辨率图像的场景,包括卫星图像分析,医学图像处理,图像存档,以及任何需要高效图像处理的领域。
资源推荐
资源详情
资源评论
收起资源包目录
vips-dev-w64-web-8.15.1.zip
windows下的依赖库 (955个子文件)
libc++.dll.a 696KB
libgio-2.0.dll.a 396KB
libglib-2.0.dll.a 315KB
libvips.dll.a 173KB
libxml2.dll.a 147KB
libharfbuzz.dll.a 135KB
libvips-cpp.dll.a 118KB
libpango-1.0.dll.a 96KB
libgobject-2.0.dll.a 87KB
libarchive.dll.a 83KB
libfontconfig.dll.a 77KB
libcairo.dll.a 68KB
liblcms2.dll.a 64KB
libtiff.dll.a 49KB
libheif.dll.a 45KB
libpng.dll.a 42KB
libpng16.dll.a 42KB
libfreetype.dll.a 38KB
libpixman-1.dll.a 29KB
libgdk_pixbuf-2.0.dll.a 28KB
libexif.dll.a 23KB
libjpeg.dll.a 20KB
libpangoft2-1.0.dll.a 20KB
libharfbuzz-subset.dll.a 18KB
libwebp.dll.a 14KB
libaom.dll.a 13KB
libexpat.dll.a 13KB
libz.dll.a 12KB
libharfbuzz-gobject.dll.a 12KB
libspng.dll.a 11KB
librsvg-2.dll.a 11KB
libffi.dll.a 9KB
libimagequant.dll.a 9KB
libcairo-gobject.dll.a 9KB
libpangowin32-1.0.dll.a 8KB
libpangocairo-1.0.dll.a 8KB
libfribidi.dll.a 7KB
libunwind.dll.a 6KB
libhwy.dll.a 5KB
libwebpmux.dll.a 5KB
libwebpdemux.dll.a 5KB
libharfbuzz-cairo.dll.a 4KB
libgmodule-2.0.dll.a 3KB
libsharpyuv.dll.a 2KB
libcgif.dll.a 2KB
libgthread-2.0.dll.a 1KB
gobjectnotifyqueue.c 5KB
ChangeLog 150KB
libxml2-config.cmake 5KB
hwy-config.cmake 4KB
libheif-config.cmake 4KB
mozjpegTargets.cmake 4KB
libheif-config-version.cmake 3KB
hwy-config-version.cmake 3KB
harfbuzz-config.cmake 2KB
mozjpegConfigVersion.cmake 2KB
mozjpegConfig.cmake 969B
mozjpegTargets-release.cmake 896B
hwy-config-release.cmake 861B
libheif-config-release.cmake 845B
35-lang-normalize.conf 41KB
30-metric-aliases.conf 13KB
30-metric-aliases.conf 13KB
65-fonts-persian.conf 10KB
65-fonts-persian.conf 10KB
65-nonlatin.conf 9KB
65-nonlatin.conf 9KB
40-nonlatin.conf 8KB
40-nonlatin.conf 8KB
45-latin.conf 7KB
45-latin.conf 7KB
45-generic.conf 3KB
45-generic.conf 3KB
25-unhint-nonlatin.conf 3KB
fonts.conf 3KB
60-latin.conf 2KB
60-latin.conf 2KB
10-scale-bitmap-fonts.conf 2KB
10-scale-bitmap-fonts.conf 2KB
60-generic.conf 2KB
60-generic.conf 2KB
90-synthetic.conf 2KB
90-synthetic.conf 2KB
20-unhint-small-vera.conf 1KB
20-unhint-small-vera.conf 1KB
50-user.conf 751B
50-user.conf 751B
09-autohint-if-no-hinting.conf 717B
11-lcdfilter-default.conf 695B
11-lcdfilter-default.conf 695B
11-lcdfilter-legacy.conf 692B
11-lcdfilter-light.conf 689B
69-unifont.conf 687B
69-unifont.conf 687B
10-sub-pixel-vrgb.conf 682B
10-sub-pixel-vbgr.conf 682B
10-sub-pixel-rgb.conf 672B
10-sub-pixel-bgr.conf 672B
10-sub-pixel-none.conf 647B
10-sub-pixel-none.conf 647B
共 955 条
- 1
- 2
- 3
- 4
- 5
- 6
- 10
资源评论
lvwenju
- 粉丝: 129
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 福袋点点.apk
- Lengyel E. - Foundations of Game Engine Development(卷一卷二合集).zip
- ### 词向量的介绍、使用技巧和优缺点的文章
- 基于STM32F103CBT6单片机GC65+MP2625+CC1101 GPSTrack模块板硬件(原理图+PCB)工程文件
- ### 通道处理过程模拟概念、优缺点和使用技巧
- ### MyBatis动态SQL介绍说明、使用技巧和优缺点
- 上传下载仿163网盘无刷新文件上传 for Jsp-fileupload-jsp.rar
- VMware Workstation业界非常稳定且安全的桌面虚拟机软件-计算机上运行多个操作系统,支持Windows、DOS等
- 基于STM8L101F3P6单片机+LY2508A33P+CC1100遥控器硬件(原理图+PCB)工程文件.zip
- 上传下载WAP图铃下载系统-unimg.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功