今天推荐一个go语言的图片处理库imaging,它使用非常简单,并且内置很多常用的函数,如:调整大小、旋转、裁剪、亮度/对比度调整等。
有人可能会问,为什么是imaging而不是标准库的image或者其他第三方库,那是因为这个库最好用,标准库实现这些功能并不方便,其他的第三方库只有一个h2non/bimg功能还算不错,但是他是libvips的绑定库,使用起来并不方便。
废话不多说我们直接来看看它的使用方法。
安装
go get -u github.com/disintegration/imaging@latest
调整图像大小
最后一个参数为filter,支持的类型如下
英文不好就不帮大家翻译了,大家自行翻译理解。
如果觉得这些filter不够用,可以自行实现ResampleFilter来满足特殊需求。
重采样filter比较
使用不同的重采样filter将同一图像的大小从 600x400 像素调整为 150x100 像素。从快(低质量)到慢(高质量):
高斯模糊
dstImage := imaging.Blur(srcImage, 0.5)
sigma 参数可以控制模糊效果的强度。
锐化
dstImage := imaging.Sharpen(srcImage, 0.5)
sigma 参数可以控制锐化效果的强度。
伽玛校正
dstImage := imaging.AdjustGamma(srcImage, 0.75)
对比度调整
dstImage := imaging.AdjustContrast(srcImage, 20)
亮度调节
dstImage := imaging.AdjustBrightness(srcImage, 20)
饱和度调节
dstImage := imaging.AdjustSaturation(srcImage, 20)
色调调整
dstImage := imaging.AdjustHue(srcImage, 20)
最后附上一个官方的示例代码
总结
disintegration/imaging是一个使用简单且功能强大的图片处理库,虽然它很久都没有更新了,但小编觉得它仍然是目前最好用的go图片处理库。如果有其他更好的推荐欢迎评论一起讨论。
本文暂时没有评论,来添加一个吧(●'◡'●)