bimg由 libvips 庫提供支持的圖像處理 Go 包
bimg 是一個(gè)由 libvips C 庫提供支持的用于進(jìn)行快速圖像處理的 Go 包,提供簡單的編程 API。bimg 支持常見的圖像操作,如裁剪、調(diào)整大小、旋轉(zhuǎn)、縮放或水印。bimg 能夠?qū)D像輸出為 JPEG、PNG 和 WEBP 格式,包括在它們之間進(jìn)行透明轉(zhuǎn)換。
bimg 內(nèi)部使用 libvips,這是一個(gè)用 C 語言編寫的圖像處理庫,通常比使用 ImageMagick 和 GraphicsMagick 快 4 倍,在某些情況下,處理 JPEG 圖像的速度甚至快 8 倍。
支持的圖像操作
- 調(diào)整大小
- 放大
- 裁剪
- 旋轉(zhuǎn)
- 翻轉(zhuǎn)
- 縮略圖
- 提取區(qū)域
- 水印
- 高斯模糊效果
- 自定義輸出色彩空間
- 格式轉(zhuǎn)換
- EXIF 元數(shù)據(jù)
先決條件
- libvips 8.3+(推薦 8.8+)
- 與 C 語言兼容的編譯器,例如 gcc 4.6+ 或 clang 3.0+
- Go 1.3+
安裝
go get -u github.com/h2non/bimg
libvips
按照libvips安裝說明進(jìn)行操作:
https://libvips.github.io/libvips/install.html
基準(zhǔn)測(cè)試
在 macOS i7 2.7Ghz 中使用 Go 1.5.1 和 libvips-7.42.3 進(jìn)行測(cè)試
BenchmarkRotateJpeg-8 20 64686945 ns/op
BenchmarkResizeLargeJpeg-8 20 63390416 ns/op
BenchmarkResizePng-8 100 18147294 ns/op
BenchmarkResizeWebP-8 100 20836741 ns/op
BenchmarkConvertToJpeg-8 100 12831812 ns/op
BenchmarkConvertToPng-8 10 128901422 ns/op
BenchmarkConvertToWebp-8 10 204027990 ns/op
BenchmarkCropJpeg-8 30 59068572 ns/op
BenchmarkCropPng-8 10 117303259 ns/op
BenchmarkCropWebP-8 10 107060659 ns/op
BenchmarkExtractJpeg-8 50 30708919 ns/op
BenchmarkExtractPng-8 3000 595546 ns/op
BenchmarkExtractWebp-8 3000 386379 ns/op
BenchmarkZoomJpeg-8 10 160005424 ns/op
BenchmarkZoomPng-8 30 44561047 ns/op
BenchmarkZoomWebp-8 10 126732678 ns/op
BenchmarkWatermarkJpeg-8 20 79006133 ns/op
BenchmarkWatermarPng-8 200 8197291 ns/op
BenchmarkWatermarWebp-8 30 49360369 ns/op
評(píng)論
圖片
表情
