圖像處理 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