图像处理 bimg


Small Go软件包,用于通过C绑定使用libvips进行快速的高级图像处理,提供了简单,优雅且流畅的编程API

bimg被设计为一个小型高效的库,支持一组常见的图像操作,例如裁剪,调整大小,旋转,缩放或水印。如果libvips@8.3+使用正确的库绑定进行编译,它可以本地读取JPEG,PNG,WEBP,还可以读取TIFF,PDF,GIF和SVG格式

bimg能够将图像输出为JPEG,PNG和WEBP格式,包括它们之间的透明转换。

bimg在内部使用libvips,这是一个用C语言编写的功能强大的库,用于图像处理,它占用的内存很少,通常比使用最快的ImageMagick和GraphicsMagick设置或Go native image快4倍,并且在某些情况下甚至比处理JPEG图像快8倍。

如果您正在寻找基于HTTP的图像处理解决方案,请参见imaginary

bimg受到Sharp的大力启发,Sharp的同源软件包是为node.js构建的bimg用于生产环境中,每天处理数千张图像。

v1通知bimg引入了一些较小的重大更改v1如果您使用gopkg.in,则仍然可以依赖而v0不用担心API的重大更改。

内容

支持的图像操作

  • 调整大小
  • 放大
  • 作物(包括智能作物支持,libvips 8.5+)
  • 旋转(基于EXIF方向自动旋转)
  • 翻转(具有基于EXIF元数据的自动翻转)
  • 翻牌圈
  • 放大
  • 缩图
  • 提取面积
  • 水印(使用文本或图像)
  • 高斯模糊效果
  • 自定义输出颜色空间(RGB,灰度...)
  • 格式转换(具有其他质量/压缩设置)
  • EXIF元数据(大小,Alpha通道,配置文件,方向...)
  • 修剪(libvips 8.6+)

先决条件

  • libvips 7.42+或8+(建议8.4+)
  • 与C兼容的编译器,例如gcc 4.6+或clang 3.0+
  • 继续1.3+

注意libvipsGIF,PDF和SVG支持需要v8.3 +。

下载

go get -u gopkg.in/h2non/bimg.v1\


调整大小

buffer, err := bimg.Read("image.jpg") if err != nil { fmt.Fprintln(os.Stderr, err) } newImage, err := bimg.NewImage(buffer).Resize(800, 600) if err != nil { fmt.Fprintln(os.Stderr, err) } size, err := bimg.NewImage(newImage).Size() if size.Width == 800 && size.Height == 600 { fmt.Println("The image size is valid") } bimg.Write("new.jpg", newImage)

旋转

buffer, err := bimg.Read("image.jpg") if err != nil { fmt.Fprintln(os.Stderr, err) } newImage, err := bimg.NewImage(buffer).Rotate(90) if err != nil { fmt.Fprintln(os.Stderr, err) } bimg.Write("new.jpg", newImage)



水印



buffer, err := bimg.Read("image.jpg") if err != nil { fmt.Fprintln(os.Stderr, err) } watermark := bimg.Watermark{ Text: "Chuck Norris (c) 2315", Opacity: 0.25, Width: 200, DPI: 100, Margin: 150, Font: "sans bold 12", Background: bimg.Color{255, 255, 255}, } newImage, err := bimg.NewImage(buffer).Watermark(watermark) if err != nil { fmt.Fprintln(os.Stderr, err) } bimg.Write("new.jpg", newImage)
 
 

 详细方法

https://www.ctolib.com/bimg.html#articleHeader10

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM