Maison >interface Web >Questions et réponses frontales >Que faire si le nœud gm signale une erreur
Solution d'erreur Node gm : 1. Installez "ImageMagick 6.x" ; 2. Ajoutez le répertoire d'installation d'ImageMagick au chemin du répertoire d'environnement et modifiez le code en "require('gm').subClass({imageMagick: true} );" C'est ça.
L'environnement d'exploitation de ce tutoriel : système linux5.9.8, version node-v16.18.0, ordinateur DELL G3
Que dois-je faire si node gm signale une erreur ?
Une collection de diverses solutions aux problèmes concernant nodejs gm (code chinois tronqué, dessin non conforme, ��Ч����)
1. code chinois tronqué
graphicsmagick ne prend pas en charge la police chinoise. dessin (indéterminé)
Actuellement, la méthode la plus directe et la plus efficace consiste à remplacer ImageMagick (les deux fonctions sont exactement les mêmes, ne vous inquiétez pas)
Installez d'abord ImageMagick 6.x
(Pour 7.x, veuillez cocher " Installer" lors de l'installation Vérifiez les utilitaires hérités (par exemple convertir)" option)
Ensuite, ajoutez le répertoire d'installation d'ImageMagick au chemin du répertoire d'environnement.
Et apportez les modifications suivantes à votre code :
const gm = require('gm')//原代码 const gm = require('gm').subClass({imageMagick: true});//修改后的代码
Ensuite, vérifiez si vous avez défini la Police chinoise et si le encodage a été basculé sur Unicode.
Pour les polices chinoises, je recommande d'utiliser "Google Noto" de Google, qui est pris en charge dans pratiquement toutes les langues.
Exemple :
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. Une erreur se produit : Erreur : Échec de la commande : conversion : définition de la primitive de dessin non conforme
Ajoutez un ' à gauche et à droite du texte dans drawText pour résoudre le problème (fonctions avec le texte peut faire cette solution)
Exemple :
img.drawText(0, 50, text);//错误 img.drawText(0, 50, "'" + text + "'");//正确方法
3. Erreur : Erreur : La commande a échoué : ��Ч����
apparaît généralement dans ImageMagick7.x, et après avoir défini imageMagick : true.
Réinstallez 7.x et cochez l'option "Installer les utilitaires hérités (par exemple convertir)" lors de l'installation.
Il m'a fallu une journée entière pour réparer ce GM....
Etude recommandée : "Tutoriel vidéo Node.js"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!