bimg

由 libvips 库提供支持的图像处理 Go 包
授权协议 MIT
开发语言 Google 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
 相关资料
  • 我一直在研究使用MVC:Annotation-Drived标记时有哪些额外的功能,我很难消化这些结果,尤其是关于@Controller注释。我知道这和这个问题很相似,但请听我说完。 根据Spring docs @Controller注释的基本目的是充当带注释类的原型,指示其角色。dispatcher将扫描这些带注释的类,寻找映射的方法,检测@RequestMapping注释(请参见下一节)。 这听

  • 问题 如何用内置的cheerypy提供SSL支持? 解法 import web from web.wsgiserver import CherryPyWSGIServer CherryPyWSGIServer.ssl_certificate = "path/to/ssl_certificate" CherryPyWSGIServer.ssl_private_key = "path/to/ssl

  • 我是Selenium IDE的新手,我需要在一个网站上运行一些测试。一切似乎都很好,除了我需要选择我的位置的部分,因为该列表是由谷歌支持的,我不能真正通过列表id获得对象..这是我目前为止的测试: 最后一部分是我需要从下拉列表中进行选择的地方,但Selenium IDE在录制时看不到它。 先谢谢你了 更新:这是城市输入的html代码:

  • 我需要用Storm处理成批的元组。我的最后一个bolt必须等到拓扑接收到整个批处理之后才能进行一些处理。为了避免混淆--对我来说,批处理是一组N条消息,它们是实时的,这个术语不需要与批处理(Hadoop)联系在一起。即使2条消息也可以是一批。 阅读Storm的文档是否可以说Storm不支持这种批处理(实时的批处理=N条消息)? 所以我的问题是给你们,我亲爱的Storm大师们,这个拓扑是不是设计得很

  • 大多数图像处理和操作技术可以使用两个库进行有效的处理:Python Imaging Library (PIL) 和 OpenSource Computer Vision (OpenCV)。 下面来简单介绍一下这两个库。 Python 图像库 Python 图像库, 全称为 Python Imaging Library,简称PIL,是Python图像操作的核心库之一。遗憾的是,PIL 的开发工作已经

  • Tensorflow封装了很多图像处理的操作,包括读取图像、图像处理、写图像到文件等等。在批量处理图像时,Tensorflow要求所有的图像都要有相同的Size,即$$(height,width,channels)$$。 读取图像 %matplotlib inline import tensorflow as tf import numpy as np #mil.use('svg') mil.us

  • 安装扩展 使用Composer安装ThinkPHP5的图像处理类库: composer require topthink/think-image 图像操作 下面来看下图像操作类的基础方法。 打开图像文件 假设当前入口文件目录下面有一个image.png文件,如图所示: 使用open方法打开图像文件进行相关操作: $image = \think\Image::open('./image.png');

  • libvips 是一个需求驱动的多线程图像处理库。与类似的库相比,libvips运行速度快,占用的内存很少。 它有大约300个操作,包括算术,直方图,卷积,形态学操作,频率滤波,颜色,重采样,统计等。它支持多种数字类型,从8位int到128位复杂。图像可以包含任意数量的波段。它支持各种图像格式,包括JPEG,TIFF,PNG,WebP,HEIC,FITS,Matlab,OpenEXR,PDF,SV