Heim > Artikel > Web-Frontend > Was tun, wenn Node GM einen Fehler meldet?
Node GM-Fehlerlösung: 1. Installieren Sie „ImageMagick 6.x“ 2. Fügen Sie das ImageMagick-Installationsverzeichnis zum Umgebungsverzeichnispfad hinzu und ändern Sie den Code in „require('gm').subClass({imageMagick: true} );" Das ist es.
Die Betriebsumgebung dieses Tutorials: Linux5.9.8-System, Node-v16.18.0-Version, DELL G3-Computer
Was soll ich tun, wenn Node GM einen Fehler meldet?
Eine Sammlung verschiedener Problemlösungen zu nodejs gm (chinesischer verstümmelter Code, nicht konforme Zeichnung, ��Ч����)
1. Chinesischer verstümmelter Code
graphicsmagick unterstützt keine chinesische Schriftart Zeichnen (unbestimmt)
Derzeit ist die direkteste und effektivste Methode das Ersetzen von ImageMagick (die beiden Funktionen sind genau gleich, kein Grund zur Sorge)
Installieren Sie zuerst ImageMagick 6.x
(Für 7.x überprüfen Sie bitte „ „Installieren“ während der Installation Aktivieren Sie die Option „Legacy-Dienstprogramme (z. B. Konvertieren)“)
Fügen Sie dann das ImageMagick-Installationsverzeichnis zum Umgebungsverzeichnispfad hinzu.
Und nehmen Sie folgende Änderungen an Ihrem Code vor:
const gm = require('gm')//原代码 const gm = require('gm').subClass({imageMagick: true});//修改后的代码
Überprüfen Sie als Nächstes, ob Sie die Chinesische Schriftart eingestellt haben und ob die Kodierung auf Unicode umgestellt wurde.
Für chinesische Schriftarten empfehle ich die Verwendung von Googles „Google Noto“, das in praktisch jeder Sprache unterstützt wird.
Beispiel:
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. Ein Fehler tritt auf: Fehler: Befehl fehlgeschlagen: Konvertierung: Nicht konforme Zeichnungsprimitivdefinition
Fügen Sie links und rechts vom Text in drawText ein ' hinzu, um das Problem zu lösen (funktioniert mit Text kann dies tun (Lösung)
Beispiel:
img.drawText(0, 50, text);//错误 img.drawText(0, 50, "'" + text + "'");//正确方法
3. Fehler: Fehler: Befehl fehlgeschlagen: ������
erscheint normalerweise in ImageMagick7.x und nach dem Festlegen von imageMagick: true.
Installieren Sie 7.x neu und aktivieren Sie während der Installation die Option „Legacy-Dienstprogramme installieren (z. B. konvertieren)“.
Ich habe einen ganzen Tag gebraucht, um dieses GM zu reparieren....
Empfohlene Studie: „node.js Video-Tutorial“
Das obige ist der detaillierte Inhalt vonWas tun, wenn Node GM einen Fehler meldet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!