# 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 surfa
没有合适的资源?快使用搜索试试~ 我知道了~
一个需求驱动的多线程图像处理库.zip
共812个文件
c:440个
h:89个
build:27个
需积分: 5 0 下载量 86 浏览量
2024-06-01
00:32:23
上传
评论
收藏 27.43MB ZIP 举报
温馨提示
Java看起来设计得很像C++,但是为了使语言小和容易熟悉,设计者们把C++语言中许多可用的特征去掉了,这些特征是一般程序员很少使用的。例如,Java不支持goto语句,代之以提供break和continue语句以及异常处理。Java还剔除了C++的操作符过载(overload)和多继承特征,并且不使用主文件,免去了预处理程序。因为Java没有结构,数组和串都是对象,所以不需要指针。Java能够自动处理对象的引用和间接引用,实现自动的无用单元收集,使用户不必为存储管理问题烦恼,能更多的时间和精力花在研发上。 面向对象 Java是一个面向对象的语言。对程序员来说,这意味着要注意其中的数据和操纵数据的方法(method),而不是严格地用过程来思考。在一个面向对象的系统中,类(class)是数据和操作数据的方法的集合。数据和方法一起描述对象(object)的状态和行为。每一对象是其状态和行为的封装。类是按一定体系和层次安排的,使得子类可以从超类继承行为。在这个类层次体系中有一个根类,它是具有一般行为的类。Java程序是用类来组织的。 Java还包括一个类的扩展集合,分别组成各种程序包
资源推荐
资源详情
资源评论
收起资源包目录
一个需求驱动的多线程图像处理库.zip (812个子文件)
vipsthumbnail.1 3KB
vips.1 3KB
vipsprofile.1 1KB
vipsedit.1 1KB
vipsheader.1 1022B
avif-orientation-6.avif 158KB
16x17000.avif 363B
vips-completion.bash 1KB
MARBLES.BMP 4.07MB
small.bmp 822B
meson.build 30KB
meson.build 5KB
meson.build 3KB
meson.build 3KB
meson.build 2KB
meson.build 2KB
meson.build 2KB
meson.build 2KB
meson.build 1KB
meson.build 1KB
meson.build 1KB
meson.build 1KB
meson.build 921B
meson.build 898B
meson.build 708B
meson.build 698B
meson.build 626B
meson.build 601B
meson.build 458B
meson.build 454B
meson.build 410B
meson.build 345B
meson.build 255B
meson.build 236B
meson.build 125B
meson.build 110B
meson.build 35B
profiles.c 2.24MB
vips7compat.c 100KB
image.c 96KB
foreign.c 89KB
tiff2vips.c 82KB
object.c 80KB
dzsave.c 71KB
vips2tiff.c 62KB
header.c 54KB
deprecated_dispatch.c 52KB
thumbnail.c 51KB
gif.c 50KB
region.c 49KB
type.c 45KB
global_balance.c 43KB
operation.c 40KB
util.c 40KB
icc_transform.c 38KB
jp2kload.c 37KB
jp2ksave.c 37KB
exif.c 36KB
heifload.c 35KB
webpsave.c 35KB
cgifsave.c 34KB
init.c 33KB
source.c 31KB
jxlload.c 31KB
openslideload.c 31KB
vipspng.c 31KB
convi.c 30KB
conva.c 30KB
conver_dispatch.c 29KB
error.c 28KB
svgload.c 28KB
lrmerge.c 27KB
arith_dispatch.c 27KB
sinkscreen.c 27KB
vips.c 25KB
vips2jpeg.c 25KB
tilecache.c 25KB
jpeg2vips.c 25KB
jxlsave.c 25KB
cache.c 25KB
morph.c 25KB
nsgifload.c 25KB
package.c 25KB
tiffsave.c 24KB
heifsave.c 24KB
relational.c 24KB
radiance.c 24KB
colour_dispatch.c 23KB
complex.c 23KB
magick7load.c 23KB
pdfiumload.c 23KB
colourspace.c 23KB
spngload.c 23KB
magick.c 22KB
rw_mask.c 22KB
boolean.c 22KB
convasep.c 22KB
jpegsave.c 22KB
arithmetic.c 22KB
niftiload.c 22KB
共 812 条
- 1
- 2
- 3
- 4
- 5
- 6
- 9
资源评论
野生的狒狒
- 粉丝: 3393
- 资源: 2436
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功