libvips는 수요 중심의 수평 스레드 이미지 처리 라이브러리입니다. 유사한 라이브러리에 비해 libvips는 빠르게 실행되고 메모리를 거의 사용하지 않습니다. libvips는 LGPL-2.1 이상에 따라 라이센스가 부여됩니다.
산술, 히스토그램, 컨볼루션, 형태학적 연산, 주파수 필터링, 색상, 리샘플링, 통계 등을 다루는 약 300개의 연산이 있습니다. 8비트 int부터 128비트 복합까지 광범위한 숫자 유형을 지원합니다. 이미지에는 원하는 수의 밴드가 있을 수 있습니다. JPEG, JPEG 2000, JPEG XL, TIFF, PNG, WebP, HEIC, AVIF, FITS, Matlab, OpenEXR, PDF, SVG, HDR, PPM / PGM / PFM, CSV, GIF를 포함한 다양한 이미지 형식을 지원합니다. NIfTI, DeepZoom 및 OpenSlide를 분석합니다. 또한 ImageMagick 또는 GraphicsMagick을 통해 이미지를 로드하여 DICOM과 같은 형식으로 작동할 수도 있습니다.
C, C++ 및 명령줄에 대한 바인딩이 함께 제공됩니다. 다음에 대해 전체 바인딩을 사용할 수 있습니다.
언어 | 제본 |
---|---|
루비 | 루비 VIPS |
파이썬 | 피빕스 |
PHP | PHP-vips |
C#/.NET | NetVips |
가다 | 고빕스 |
루아 | 루아 VIP |
결정 | 크리스탈 VIP |
엘릭서 | 빅스 |
JVM | vips-ffm |
libvips는 다음을 통해 이미지 처리 엔진으로 사용됩니다.
샤프(node.js에서) |
imgproxy |
큰 |
바둑에 예리하다 |
루비 온 레일즈 |
Carrierwave-vips |
미디어위키 |
포토플로우 |
JVips |
그리고 다른 사람들. 공식 libvips GUI는 스프레드시트와 사진 편집기의 이상한 조합인 nip2입니다.
macOS를 포함한 대부분의 Unix 계열 운영 체제용 패키지가 있습니다. 패키지 관리자를 확인하세요.
릴리스에는 Windows용 바이너리가 있습니다.
libvips 웹사이트에는 자세한 설치 노트가 있습니다.
libvips는 Meson 빌드 시스템 버전 0.56 이상을 사용합니다. Meson은 ninja
, Visual Studio 또는 XCode를 백엔드로 사용할 수 있으므로 둘 중 하나도 필요합니다.
libvips에는 build-essential
, pkg-config
, libglib2.0-dev
, libexpat1-dev
가 있어야 합니다. libvips 선택적 종속성의 전체 목록은 아래 종속성 섹션을 참조하세요.
completions/
에는 기본 bash 완성 기능이 있습니다. 거기에 있는 README를 참조하세요.
cd libvips-x.y.x
meson setup build --prefix /my/install/prefix
cd build
meson compile
meson test
meson install
meson setup
의 출력을 주의 깊게 확인하고 찾고자 하는 모든 항목을 찾았는지 확인하십시오. 빌드 구성을 변경하려면 meson setup
에 인수를 추가하세요.
libvips 옵션을 켜거나 끄려면 -Dnsgif=false
와 같은 플래그를 추가하세요. libvips가 지원하는 모든 빌드 옵션 목록은 meson_options.txt
참조하세요.
libvips 종속성을 켜거나 끄려면 -Dmagick=disabled
와 같은 플래그를 추가하세요. 모든 libvips 종속성에 대한 요약은 meson_options.txt
및 아래 목록을 참조하세요.
라이브러리 경로에 아치 이름을 원하지 않으면 Debian에 --libdir lib
추가해야 할 수도 있습니다.
정적 빌드에 --default-library static
추가합니다.
예를 들어 CC=clang CXX=clang++ meson setup ...
사용하여 컴파일러를 변경하세요.
대체 빌드 디렉터리를 사용할 수 있으며 원하는 이름을 선택할 수 있습니다(예: 릴리스용, 디버그용).
libvips가 설치되면 실행할 수 있는 보다 포괄적인 테스트 모음이 있습니다. libvips 기본 디렉터리에서 pytest
사용하세요.
적합한 버전이 발견되면 libvips는 다음 라이브러리에 대한 지원을 자동으로 추가합니다. 패키지는 일반적으로 pkg-config
로 발견되므로 제대로 작동하는지 확인하세요.
IJG JPEG 라이브러리와 호환되는 모든 것. 가능하다면 mozjpeg
사용하세요. 또 다른 옵션은 libjpeg-turbo
입니다.
가능한 경우 libvips는 JPEG 파일에 EXIF 메타데이터에 대한 지원을 추가합니다.
일반적인 SVG 로더. 이것이 없으면 vips는 대신 imagemagick을 통해 SVG를 로드하려고 시도합니다.
libvips가 있는 경우 PDFium을 사용하여 PDF 로드를 시도합니다. 다음 위치에서 사전 구축된 pdfium 바이너리를 다운로드하세요.
https://github.com/bblanchon/pdfium-binaries
libvips 설치 접두사를 압축 해제합니다. 예:
cd ~/vips
tar xf ~/pdfium-linux.tgz
다음과 같이 pdfium.pc
만듭니다(버전 번호 업데이트).
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
PDFium이 감지되지 않으면 libvips는 대신 poppler-glib
를 찾습니다.
glib API를 갖춘 Poppler PDF 렌더러. 이것이 없으면 vips는 imagemagick을 통해 PDF를 로드하려고 시도합니다.
가능한 경우 libvips는 cgif로 GIF를 저장합니다. 이것이 없으면 vips는 대신 imagemagick을 통해 gif를 저장하려고 시도합니다.
가능한 경우 libvips는 dzsave
사용하여 이미지 피라미드 생성에 대한 지원을 추가합니다.
TIFF 라이브러리. JPEG 및 ZIP 압축을 지원하도록 구축되어야 합니다. 3.4b037 이상은 괜찮은 것으로 알려져 있습니다.
libvips가 이 라이브러리를 찾으면 이를 푸리에 변환에 사용합니다.
vips_icc_import()
, vips_icc_export()
및 vips_icc_transform()
이 있는 경우 ICC 프로필로 이미지를 조작하는 데 사용할 수 있습니다.
libvips가 있는 경우 libspng를 사용하여 PNG 파일을 로드하고 저장합니다. 그렇지 않은 경우 표준 libpng 패키지를 찾습니다.
이러한 양자화 패키지 중 하나가 있으면 libvips는 8비트 팔레트화 PNG 및 GIF를 작성할 수 있습니다.
가능한 경우 libvips는 모든 libMagick 지원 이미지 파일 형식을 로드하고 저장하기 위한 지원을 추가합니다. 로드 및 저장을 별도로 활성화 및 비활성화할 수 있습니다.
Imagemagick 6.9+는 --with-modules
로 구축되어야 합니다. 대부분의 패키지 IM은 그런 것 같아요.
예를 들어 웹 서버에서 신뢰할 수 없는 이미지와 함께 libvips를 사용하려는 경우 공격 노출 영역이 큰 패키지를 활성화하는 경우 보안에 미치는 영향을 고려해야 합니다.
가능한 경우 libvips는 텍스트 렌더링 지원을 추가합니다. pkg-config --list-all
에 pangocairo 패키지가 필요합니다.
libvips가 있는 경우 SIMD를 사용하여 일부 작업을 가속화합니다. 그렇지 않은 경우 orc-0.4 패키지를 찾습니다.
가능한 경우 vips는 Matlab 저장 파일에서 이미지를 로드할 수 있습니다.
가능한 경우 vips는 FITS 이미지를 로드할 수 있습니다.
가능한 경우 vips는 WebP 이미지를 로드하고 저장할 수 있습니다.
가능한 경우 vips는 NIfTI 이미지를 로드하고 저장할 수 있습니다.
가능한 경우 libvips는 OpenEXR 이미지를 직접 읽습니다(슬프게도 쓰지는 않음).
가능한 경우 libvips는 JPEG2000 이미지를 읽고 씁니다.
가능한 경우 libvips는 JPEG-XL 이미지를 읽고 씁니다.
가능한 경우 libvips는 OpenSlide 지원 가상 슬라이드 파일(Aperio, Hamamatsu, Leica, MIRAX, Sakura, Trestle 및 Ventana)을 로드할 수 있습니다.
가능한 경우 libvips는 HEIC 및 AVIF 이미지를 로드하고 저장할 수 있습니다. libheif는 올바른 디코더와 인코더로 빌드되어야 합니다. 예를 들어 다음과 같이 확인할 수 있습니다.
$ 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
이 프로젝트는 기여하는 모든 사람들 덕분에 존재합니다.
우리는 후원자들로부터 아낌없는 재정적 지원을 받았습니다. 매우 감사합니다!