zoukankan      html  css  js  c++  java
  • 图像处理 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

  • 相关阅读:
    hdu 2222 Keywords Search
    Meet and Greet
    hdu 4673
    hdu 4768
    hdu 4747 Mex
    uva 1513 Movie collection
    uva 12299 RMQ with Shifts
    uva 11732 strcmp() Anyone?
    uva 1401
    hdu 1251 统计难题
  • 原文地址:https://www.cnblogs.com/yangxinpython/p/12830692.html
Copyright © 2011-2022 走看看