golang常用库之-disintegration/imaging图片操作(生成缩略图)
package main
import (
"github.com/disintegration/imaging"
"log"
"os"
)
// 生成并保存图片的缩略图
func GenerateThumbnail(inputPath, outputPath string, thumbWidth, thumbHeight int) error {
// 读取原始图片文件
src, err := imaging.Open(inputPath)
if err != nil {
log.Printf("Error opening image %s: %v", inputPath, err)
return err
}
// 创建缩略图
thumb := imaging.Thumbnail(src, thumbWidth, thumbHeight, imaging.Lanczos)
// 将缩略图保存到指定路径
err = imaging.Save(thumb, outputPath)
if err != nil {
log.Printf("Error saving thumbnail %s: %v", outputPath, err)
return err
}
return nil
}
func main() {
inputPath := "input.jpg" // 原始图片路径
outputPath := "output_thumb.jpg" // 缩略图保存路径
thumbWidth := 100 // 指定缩略图的宽度
thumbHeight := 100 // 指定缩略图的高度
err := GenerateThumbnail(inputPath, outputPath, thumbWidth, thumbHeight)
if err != nil {
log.Fatalf("Error generating thumbnail: %v", err)
}
log.Println("Thumbnail generated successfully.")
}
这段代码首先导入了必要的库,然后定义了一个GenerateThumbnail
函数,该函数接受原始图片路径、输出路径以及想要的缩略图宽度和高度作为参数。函数使用imaging.Open
读取原始图片,然后使用imaging.Thumbnail
函数生成缩略图,并使用imaging.Save
保存到指定路径。最后,在main
函数中调用GenerateThumbnail
来生成并保存缩略图。
评论已关闭