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)"選項進行打鉤)
隨後,在環境目錄Path中增加ImageMagick安裝目錄。
並對你的程式碼做以下修改:
const gm = require('gm')//原代码 const gm = require('gm').subClass({imageMagick: true});//修改后的代码
接下來,檢查你是否設定了中文字體,和是否編碼切換為了Unicode。
中文字體我推薦使用Google的"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 報錯怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!