golang 有什么方法将图片进行高斯模糊处理
在Go语言中,可以使用第三方库来实现对图片进行高斯模糊处理。下面是一个使用github.com/disintegration/gift库的示例代码:
package main
import (
"image"
"image/jpeg"
"log"
"os"
"github.com/disintegration/gift"
)
func main() {
// 读取图片
file, err := os.Open("input.jpg")
if err != nil {
log.Fatal(err)
}
defer file.Close()
img, _, err := image.Decode(file)
if err != nil {
log.Fatal(err)
}
// 创建高斯模糊滤镜
g := gift.New(
gift.GaussianBlur(10),
)
// 处理图片
dst := image.NewRGBA(g.Bounds(img.Bounds()))
g.Draw(dst, img)
// 保存处理后的图片
outFile, err := os.Create("output.jpg")
if err != nil {
log.Fatal(err)
}
defer outFile.Close()
jpeg.Encode(outFile, dst, &jpeg.Options{Quality: 100})
}
上述代码中,使用image/jpeg包加载和保存JPEG图片,你可以根据实际需要使用其他格式的图片。使用image.Decode函数读取图片,然后创建一个高斯模糊滤镜并将其应用到原始图片上,最后使用jpeg.Encode保存处理后的图片。
在运行代码之前,你需要先使用go get命令安装github.com/disintegration/gift库:
go get github.com/disintegration/gift
然后将待处理的图片命名为input.jpg,运行代码后会生成处理后的图片output.jpg。你可以根据实际需要调整高斯模糊的程度,代码中的GaussianBlur(10)表示使用半径为10的高斯模糊滤镜
原文地址: http://www.cveoy.top/t/topic/iFiR 著作权归作者所有。请勿转载和采集!