编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

go语言图片处理库:使用简单且功能强大,imaging

wxchong 2024-08-03 02:58:55 开源技术 42 ℃ 0 评论

今天推荐一个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图片处理库。如果有其他更好的推荐欢迎评论一起讨论。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表