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

  • 相关阅读:
    OpenGL---------BMP文件格式
    OpenGL———混合的基本知识
    OpenGL------显示列表
    OpenGL---------光照的基本知识
    OpenGL学习--------动画制作
    OpenGL------三维变换
    OpenGL学习--------颜色的选择
    OpenGL学习-------点、直线、多边形
    Windows X64汇编入门(1)
    x86 x64下调用约定浅析
  • 原文地址:https://www.cnblogs.com/yangxinpython/p/12830692.html
Copyright © 2011-2022 走看看