首頁  >  文章  >  web前端  >  node gm 報錯怎麼辦

node gm 報錯怎麼辦

藏色散人
藏色散人原創
2023-01-28 16:22:282376瀏覽

node gm報錯的解決方法:1、安裝「ImageMagick 6.x」;2、在環境目錄Path中增加ImageMagick安裝目錄,並修改程式碼為「require('gm').subClass({ imageMagick: true});」即可。

node gm 報錯怎麼辦

本教學操作環境: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)"選項進行打鉤)

node gm 報錯怎麼辦

 隨後,在環境目錄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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn