Go 語言本身并不直接包含圖像處理功能,但是有一些第三方庫可以幫助你處理圖像。以下是一些流行的 Go 圖像處理庫:
Go-Image: 這是一個功能齊全的圖像處理庫,提供了許多常見的圖像處理操作,如縮放、裁剪、旋轉、模糊等。GitHub 地址:https://github.com/disintegration/imaging
Go Graphics: 這是一個簡單易用的 2D 圖形庫,提供了基本的圖形繪制和操作功能。GitHub 地址:https://github.com/llgcode/draw2d
Go-Canvas: 這是一個基于 HTML5 Canvas 的 Go 圖像處理庫,提供了豐富的圖形繪制和操作功能。GitHub 地址:https://github.com/tdewolff/canvas
Go-OpenCV: 這是一個基于 OpenCV 的 Go 圖像處理庫,提供了許多計算機視覺相關的功能,如特征檢測、對象識別等。GitHub 地址:https://github.com/hybridgroup/gocv
要使用這些庫,你需要先安裝它們,然后在你的 Go 項目中導入相應的包。例如,要使用 Go-Image 庫,你可以這樣做:
package main
import (
"fmt"
"image/jpeg"
"os"
"github.com/disintegration/imaging"
)
func main() {
file, err := os.Open("input.jpg")
if err != nil {
fmt.Println("Error opening file:", err)
return
}
defer file.Close()
img, err := jpeg.Decode(file)
if err != nil {
fmt.Println("Error decoding image:", err)
return
}
resizedImg := imaging.Resize(img, 300, 0, imaging.Lanczos3)
err = imaging.Save(resizedImg, "output.jpg")
if err != nil {
fmt.Println("Error saving image:", err)
return
}
fmt.Println("Image resized and saved successfully.")
}
這個示例中,我們使用 Go-Image 庫打開一張 JPEG 圖像,將其縮放到 300x300 像素,然后保存到磁盤。