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

网站首页 > 开源技术 正文

nodejs 图片处理库简介(node canvas处理图片)

wxchong 2024-10-26 16:08:25 开源技术 37 ℃ 0 评论

nodejs 图片处理库简介

最近在用electron做一个desktop app,其中需要对图片做一些处理,例如裁剪、调整大小、扩大画布然后在图片上打上中文文字。大概效果如下:

Nodejs 图片库比较匮乏,找来找去就几个,相比python的安装还比较麻烦。中间遇到的坑不少,记录如下:

1.国产图片处理库node-images,已经停止维护,缺乏某些功能,比如图片上加文字,并且在nodejs 8.0版本下无法使用

2.Jimp

Jimp无需第三方依赖,安装简单,基本无坑,Github star4200多,npm周下载量7万多次,算是比较优秀的第三方处理库。支持常见的图片处理操作,也可以加文字,但是如果要在图片上加中文文字的话,有点麻烦,需要自制.fnt位图字体文件,然后导入。但CJK字库文字太多,制作出来文件很大。我就是因为这个,放弃了使用jimp。

3.node-lwip

和jimp类似,无第三方依赖。没有提供图片上写文字的方法。

4.node sharp

目前nodejs中最快的图片处理库,和其他图片处理库相比,遥遥领先。无需第三方依赖,性能超好,就是安装比较麻烦,但最后还是安装成功了!一次性处理200张图片,sharp图片处理库的速度明显最快。按照官方说明,至少是5到10倍于ImageMagick and GraphicsMagick 。

可惜,翻遍文档api也没有找到图片写文字的方法,就是说,没有提供图片直接写文字的方法。

--- 关于sharp在windows 10 64位的安装,直接npm install sharp,基本都不会成功的。

Sharp的安装,需要三个前提条件:

·Node v4.5.0+

·C++11 compatible compiler such as gcc 4.8+, clang 3.0+ or MSVC 2013+

·node-gyp and its dependencies (includes Python)

对于windows10 64位来说,可以运行以下两条命令,一劳永逸解决sharp的安装问题:

先运行:

npm install --global --production windows-build-tools

然后:

npm config set msvs_version 2015 --global

就可以把所有的环境配置搞定。最后关掉所有cmd或者shell窗口,然后再用

npm install sharp安装就OK了。

速度超快,api好用,基本等于完美,可惜刚好我缺乏我需要的一个功能。

5.GraphicsMagick或者ImageMagick

如果不需要在图片上加中文文字,只需要安装GraphicsMagick就可以了。如果需要在图片上加【中文文字】,要同时安装GraphicsMagick 和 ImageMagick。然后使用gm subclass子类话的方法来调用。

注意:中文需要指定中文字体的.ttf文件,并且字体文件名不能是中文,如"msyh.ttf",OK;“微软雅黑.ttf”,BAD!

gm提供了超级强悍的api,基本上你需要对图片做的任何处理都能实现!并且它是基于命令行的,可以直接在命令行中调用。

GraphicsMagick和ImageMagick在windows10 64位下的安装都比较傻瓜式,直接下载对应的exe文件,不分32位和64位,setup 一路next就行。

总结,gm的速度仅仅比sharp慢,比其他的几个图片库都要快的多,并且提供的api很丰富,链式调用写法很爽,安装配置也相对简单的多,支持在图片上直接添加中文文字。其他的几个图片库,对于”在图片上添加文字“这个功能,有些不提供,有些提供了但很难用。

反正呢,按需挑选吧!

有写的不足的地方,欢迎指正!

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

欢迎 发表评论:

最近发表
标签列表