golang常用库之-disintegration/imaging图片操作(生成缩略图)

文章目录

golang常用库之

什么是imaging库

官网:https://github.com/disintegration/imaging

imaging 是一个 Go 语言的图像处理库,它提供了一组功能丰富的函数和方法,用于进行各种图像处理操作。

imaging 库允许您在 Go 代码中打开、操作和保存图像。

  1. 打开图像:使用 imaging.Open 函数可以打开一个图像文件,并将其转换为 *image.NRGBA 类型的图像对象。

  2. 缩放和调整大小:使用 imaging.Resize 函数可以调整图像的大小,可以指定目标宽度和高度,也可以指定缩放的比例。

  3. 裁剪和切割:使用 imaging.Crop 函数可以裁剪图像,可以指定裁剪的矩形区域。

  4. 旋转和翻转:使用 imaging.Rotate 和 imaging.Flip 函数可以对图像进行旋转和翻转操作。

  5. 滤镜和图像效果:imaging 库还提供了一些滤镜函数,如高斯模糊、锐化、灰度化等,可以给图像添加各种效果和改变图像的外观。

  6. 保存图像:使用 imaging.Save 函数可以将图像保存到本地文件,可以指定保存的格式和质量。

导入和使用

go 复制代码
import (
    "github.com/disintegration/imaging"
)

生成缩略图

go 复制代码
// 生成缩略图
thumbFilePath := filepath.Join(common.UploadDir, "images", "thumb_"+filename)
thumbImage, err := imaging.Open(filePath)
if err != nil {
	log.Fatal(err)
}
thumbImage = imaging.Resize(thumbImage, 250, 150, imaging.Lanczos) // 设置缩略图的宽度为 100
err = imaging.Save(thumbImage, thumbFilePath)
if err != nil {
	log.Fatal(err)
}
相关推荐
树欲静而风不止慢一点吧2 分钟前
Qt5/6版本对应的Emscripten版本
开发语言·qt
微爱帮监所写信寄信6 分钟前
微爱帮监狱寄信写信系统后台PHP框架优化实战手册
android·开发语言·人工智能·网络协议·微信·https·php
历程里程碑10 分钟前
滑动窗口秒解LeetCode字母异位词
java·c语言·开发语言·数据结构·c++·算法·leetcode
计算机学姐11 分钟前
基于SpringBoot的智能家教服务平台【2026最新】
java·spring boot·后端·mysql·spring·java-ee·intellij-idea
思成Codes15 分钟前
Go 语言中数组与切片的本质区别
开发语言·后端·golang
Gofarlic_oms125 分钟前
Cadence许可证全生命周期数据治理方案
java·大数据·运维·开发语言·人工智能·安全·自动化
成为大佬先秃头25 分钟前
渐进式JavaScript框架:Vue — API
开发语言·javascript·vue.js
期待のcode28 分钟前
Java String类
java·开发语言
资生算法程序员_畅想家_剑魔28 分钟前
Java常见技术分享-17-多线程安全-并发编程的核心问题的解决方案
java·开发语言
superman超哥28 分钟前
Rust Trait约束(Trait Bounds):类型能力的精确契约
开发语言·后端·rust·rust trait约束·trait bounds·类型能力·精确契约