libvips ist eine bedarfsgesteuerte Bildverarbeitungsbibliothek mit horizontalem Thread. Im Vergleich zu ähnlichen Bibliotheken läuft libvips schnell und benötigt wenig Speicher. libvips ist unter LGPL-2.1 oder höher lizenziert.
Es verfügt über rund 300 Operationen, die Arithmetik, Histogramme, Faltung, morphologische Operationen, Frequenzfilterung, Farbe, Resampling, Statistik und andere umfassen. Es unterstützt eine Vielzahl numerischer Typen, von 8-Bit-Int bis 128-Bit-Komplex. Bilder können eine beliebige Anzahl von Bändern haben. Es unterstützt eine gute Auswahl an Bildformaten, darunter JPEG, JPEG 2000, JPEG XL, TIFF, PNG, WebP, HEIC, AVIF, FITS, Matlab, OpenEXR, PDF, SVG, HDR, PPM / PGM / PFM, CSV, GIF, Analyze, NIfTI, DeepZoom und OpenSlide. Es kann auch Bilder über ImageMagick oder GraphicsMagick laden und so mit Formaten wie DICOM arbeiten.
Es enthält Bindungen für C, C++ und die Befehlszeile. Vollständige Bindungen sind verfügbar für:
Sprache | Bindung |
---|---|
Rubin | Ruby-Vips |
Python | Pyvips |
PHP | php-vips |
C# / .NET | NetVips |
Gehen | govips |
Lua | lua-vips |
Kristall | Kristall-VIPs |
Elixier | vix |
JVM | vips-ffm |
libvips wird als Bildverarbeitungs-Engine verwendet von:
scharf (auf node.js) |
imgproxy |
bimg |
scharf für Go |
Ruby auf Schienen |
Carrierwave-VIPs |
Medienwiki |
PhotoFlow |
JVips |
und andere. Die offizielle libvips-GUI ist nip2, eine seltsame Kombination aus einer Tabellenkalkulation und einem Bildbearbeitungsprogramm.
Es gibt Pakete für die meisten Unix-ähnlichen Betriebssysteme, einschließlich macOS. Überprüfen Sie Ihren Paketmanager.
In den Versionen gibt es Binärdateien für Windows.
Auf der libvips-Website finden Sie detaillierte Installationshinweise.
libvips verwendet das Meson-Build-System, Version 0.56 oder höher. Meson kann ninja
, Visual Studio oder XCode als Backend verwenden, Sie benötigen also auch eines davon.
libvips muss build-essential
, pkg-config
, libglib2.0-dev
, libexpat1-dev
haben. Eine vollständige Liste der optionalen libvips-Abhängigkeiten finden Sie im Abschnitt „Abhängigkeiten“ weiter unten.
Es gibt grundlegende Bash-Vervollständigungen in completions/
, siehe die README-Datei dort.
cd libvips-x.y.x
meson setup build --prefix /my/install/prefix
cd build
meson compile
meson test
meson install
Überprüfen Sie die Ausgabe von meson setup
sorgfältig und stellen Sie sicher, dass alles gefunden wurde, was Sie finden wollten. Fügen Sie Argumente zum meson setup
hinzu, um die Build-Konfiguration zu ändern.
Fügen Sie Flags wie -Dnsgif=false
hinzu, um libvips-Optionen ein- und auszuschalten. Eine Liste aller von libvips unterstützten Build-Optionen finden Sie in meson_options.txt
.
Fügen Sie Flags wie -Dmagick=disabled
hinzu, um libvips-Abhängigkeiten ein- und auszuschalten. Eine Zusammenfassung aller libvips-Abhängigkeiten finden Sie in meson_options.txt
und der Liste unten.
Möglicherweise müssen Sie unter Debian --libdir lib
hinzufügen, wenn Sie den Arch-Namen nicht im Bibliothekspfad haben möchten.
Fügen Sie --default-library static
für einen statischen Build hinzu.
Verwenden Sie zum Beispiel CC=clang CXX=clang++ meson setup ...
um den Compiler zu ändern.
Sie können ein alternatives Build-Verzeichnis haben und beliebige Namen auswählen, zum Beispiel einen für die Veröffentlichung und einen für das Debuggen.
Es gibt eine umfassendere Testsuite, die Sie ausführen können, sobald libvips installiert wurde. Verwenden Sie pytest
im libvips-Basisverzeichnis.
Wenn geeignete Versionen gefunden werden, fügt libvips automatisch Unterstützung für die folgenden Bibliotheken hinzu. Pakete werden im Allgemeinen mit pkg-config
gefunden, also stellen Sie sicher, dass das funktioniert.
Alles, was mit der IJG JPEG-Bibliothek kompatibel ist. Verwenden Sie mozjpeg
wenn Sie können. Eine weitere Option ist libjpeg-turbo
.
Sofern verfügbar, fügt libvips Unterstützung für EXIF-Metadaten in JPEG-Dateien hinzu.
Der übliche SVG-Loader. Wenn dies nicht vorhanden ist, versucht vips stattdessen, SVGs über imagemagick zu laden.
Falls vorhanden, versucht libvips, PDFs mit PDFium zu laden. Laden Sie die vorgefertigte PDFium-Binärdatei herunter von:
https://github.com/bblanchon/pdfium-binaries
Entpacken Sie es in das libvips-Installationspräfix, zum Beispiel:
cd ~/vips
tar xf ~/pdfium-linux.tgz
Erstellen Sie ein pdfium.pc
wie folgt (aktualisieren Sie die Versionsnummer):
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
Wenn PDFium nicht erkannt wird, sucht libvips stattdessen nach poppler-glib
.
Der Poppler PDF-Renderer mit einer glib-API. Ist diese nicht vorhanden, wird vips versuchen, PDFs über imagemagick zu laden.
Sofern verfügbar, speichert libvips GIFs mit cgif. Wenn dies nicht vorhanden ist, versuchen VIPs stattdessen, GIFs über Imagemagick zu speichern.
Sofern verfügbar, fügt libvips Unterstützung für die Erstellung von Bildpyramiden mit dzsave
hinzu.
Die TIFF-Bibliothek. Es muss mit Unterstützung für JPEG- und ZIP-Komprimierung erstellt werden. 3.4b037 und höher sind bekanntermaßen in Ordnung.
Wenn libvips diese Bibliothek findet, verwendet es sie für Fourier-Transformationen.
Falls vorhanden, können vips_icc_import()
, vips_icc_export()
und vips_icc_transform()
zum Bearbeiten von Bildern mit ICC-Profilen verwendet werden.
Falls vorhanden, lädt und speichert libvips PNG-Dateien mit libspng. Wenn nicht, wird nach dem Standardpaket libpng gesucht.
Wenn eines dieser Quantisierungspakete vorhanden ist, kann libvips PNGs und GIFs mit 8-Bit-Palette schreiben.
Sofern verfügbar, fügt libvips Unterstützung für das Laden und Speichern aller von libMagick unterstützten Bilddateitypen hinzu. Sie können das Laden und Speichern separat aktivieren und deaktivieren.
Imagemagick 6.9+ muss mit --with-modules
erstellt worden sein. Ich glaube, das sind die meisten verpackten IMs.
Wenn Sie libvips mit nicht vertrauenswürdigen Bildern verwenden, beispielsweise auf einem Webserver, sollten Sie die Auswirkungen auf die Sicherheit berücksichtigen, die sich aus der Aktivierung eines Pakets mit einer so großen Angriffsfläche ergeben.
Sofern verfügbar, fügt libvips Unterstützung für die Textwiedergabe hinzu. Sie benötigen das Paket pangocairo in pkg-config --list-all
.
Falls vorhanden, beschleunigt libvips einige Vorgänge mit SIMD. Wenn nicht, wird nach dem Paket orc-0.4 gesucht.
Sofern verfügbar, können VIPs Bilder aus Matlab-Speicherdateien laden.
Sofern verfügbar, können VIPs FITS-Bilder laden.
Sofern verfügbar, können VIPs WebP-Bilder laden und speichern.
Sofern verfügbar, können VIPs NIfTI-Bilder laden und speichern.
Sofern verfügbar, liest libvips OpenEXR-Bilder direkt (schreibt sie aber leider nicht).
Sofern verfügbar, liest und schreibt libvips JPEG2000-Bilder.
Sofern verfügbar, liest und schreibt libvips JPEG-XL-Bilder.
Sofern verfügbar, kann libvips von OpenSlide unterstützte virtuelle Objektträgerdateien laden: Aperio, Hamamatsu, Leica, MIRAX, Sakura, Trestle und Ventana.
Sofern verfügbar, kann libvips HEIC- und AVIF-Bilder laden und speichern. Ihr Libheif (wiederum) muss mit den richtigen Decodern und Encodern erstellt werden. Sie können z. B. nachfragen:
$ heif-convert --list-decoders
HEIC decoders:
- libde265 = libde265 HEVC decoder, version 1.0.9
AVIF decoders:
- dav1d = dav1d v6.6.0
- aom = AOMedia Project AV1 Decoder v3.5.0
$ heif-enc --list-encoders
HEIC encoders:
- x265 = x265 HEVC encoder (3.5+1-f0c1022b6) [default]
AVIF encoders:
- aom = AOMedia Project AV1 Encoder v3.5.0 [default]
- svt = SVT-AV1 encoder v1.1.0
- rav1e = Rav1e encoder
Dieses Projekt existiert dank aller Menschen, die dazu beitragen.
Wir erhielten großzügige finanzielle Unterstützung von unseren Sponsoren. Vielen Dank!