node gm 报错怎么办
node gm 报错怎么办?
关于nodejs gm的各种各样的问题解决方法集合(中文乱码,non-conforming drawing,��Ч���� )
1.中文乱码
graphicsmagick不支持中文字体绘制(未确定)
目前最直接最有效的方法为更换ImageMagick(二者功能完全相同,无需担心)
首先安装ImageMagick 6.x
(为7.x请在安装时对"Install legacy utilities(e.g. convert)"选项进行打钩)
随后,在环境目录Path中增加ImageMagick安装目录。
并对你的代码做以下修改:
const gm = require('gm')//原代码
const gm = require('gm').subClass({imageMagick: true});//修改后的代码
接下来,检查你是否设置了中文字体,和是否编码切换为了Unicode。
中文字体我推荐使用谷歌的"Google Noto",基本啥语言都支持。
示例:
const gm = require('gm').subClass({imageMagick: true});
var text = "你好!ImageMagick!";
var img = gm(800, 2000, "#ffffffff");//创建一个800x2000的图片
img.font("./Noto.ttf",36);//设置字体,字体大小
img.encoding('Unicode');//设置编码为Unicode
img.drawText(0, 50, "'" text "'");//此处 "'" 不能删除,删除会导致出现问题2(坑爹)
img.write("test.png", function (err) {if(err)console.error(err)});//写出图片
2.出现报错:Error: Command failed: convert: non-conforming drawing primitive definition
给drawText的文字的左右加一个 ' 即可解决(带有文字的函数都可以这么解决)
示例:
img.drawText(0, 50, text);//错误
img.drawText(0, 50, "'" text "'");//正确方法
3.报错:Error: Command failed: ��Ч����
一般出现于ImageMagick7.x,并设置imageMagick: true以后。
重装7.x,并在安装时对"Install legacy utilities(e.g. convert)"选项进行打钩。
搞了一天才整好这gm....
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanfgffe
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
photoshop蒙版画笔没反应怎么办
PHP中文网 06-24