2023node gm 报错怎么办

 所属分类:web前端开发

 浏览:147次-  评论: 0次-  更新时间:2023-03-01
描述:更多教程资料进入php教程获得。 node gm报错的解决办法:1、安装“ImageMagick 6.x”;2、在环境目录Path中增加ImageMagick安装目录,并...
更多教程资料进入php教程获得。

node gm报错的解决办法:1、安装“ImageMagick 6.x”;2、在环境目录Path中增加ImageMagick安装目录,并修改代码为“require('gm').subClass({imageMagick: true});”即可。

本教程操作环境:linux5.9.8系统、node-v16.18.0版、DELL G3电脑

node gm 报错怎么办?

关于nodejs gm的各种各样的问题解决方法集合(中文乱码,non-conforming drawing,��Ч���� )

1.中文乱码

graphicsmagick不支持中文字体绘制(未确定)

目前最直接最有效的方法为更换ImageMagick(二者功能完全相同,无需担心)

首先安装ImageMagick 6.x

(为7.x请在安装时对"Install legacy utilities(e.g. convert)"选项进行打钩)

69b85846c84f90f5f44f19598bcfdc7.jpg

随后,在环境目录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....

推荐学习:《node.js视频教程》

以上就是node gm 报错怎么办的详细内容,更多请关注zzsucai.com其它相关文章!

 标签: gm,node,
积分说明:注册即送10金币,每日签到可获得更多金币,成为VIP会员可免金币下载! 充值积分充值会员更多说明»

讨论这个素材(0)回答他人问题或分享使用心得奖励金币

〒_〒 居然一个评论都没有……

表情  文明上网,理性发言!