bimg由 libvips 库提供支持的图像处理 Go 包
 bimg 是一个由 libvips C 库提供支持的用于进行快速图像处理的 Go 包,提供简单的编程 API。bimg 支持常见的图像操作,如裁剪、调整大小、旋转、缩放或水印。bimg 能够将图像输出为 JPEG、PNG 和 WEBP 格式,包括在它们之间进行透明转换。 
 
 bimg 内部使用 libvips,这是一个用 C 语言编写的图像处理库,通常比使用 ImageMagick 和 GraphicsMagick 快 4 倍,在某些情况下,处理 JPEG 图像的速度甚至快 8 倍。
 
支持的图像操作
- 调整大小
 - 放大
 - 裁剪
 - 旋转
 - 翻转
 - 缩略图
 - 提取区域
 - 水印
 - 高斯模糊效果
 - 自定义输出色彩空间
 - 格式转换
 - EXIF 元数据
 
先决条件
- libvips 8.3+(推荐 8.8+)
 - 与 C 语言兼容的编译器,例如 gcc 4.6+ 或 clang 3.0+
 - Go 1.3+
 
安装
go get -u github.com/h2non/bimg
libvips
按照libvips安装说明进行操作:
https://libvips.github.io/libvips/install.html
基准测试
在 macOS i7 2.7Ghz 中使用 Go 1.5.1 和 libvips-7.42.3 进行测试
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
 
   评论
