node.js - 如何避免 node-canvas 的 loadImage 的多字节文件路径错误?
问题描述
node-canvas (2.7.0) 存在无法从包含多字节字符的路径加载图像的错误。
const { loadImage } = require('canvas');
const image = await loadImage('/Users/ユーザ名/Documents/test.png');
这种情况会导致“找不到文件”错误。
如何避免这种情况?
解决方案
我们应该等待官方错误修复,但以下工作可以解决:
const { Image } = require('canvas');
const fs = require('fs');
const image = await new Promise((res, rej) => {
fs.readFile('/Users/ユーザ名/Documents/test.png', (err, buf) => {
if (err) rej(err);
const img = new Image();
img.onload = () => { res(img) };
img.onerror = (err) => { rej(err) };
img.src = buf;
});
});
推荐阅读
- bash - sed - 循环只替换出现中的最后一种语言 - 它应该替换所有
- shopify - 在 shopify 的结帐页面上添加自定义按钮
- javascript - Ajax 在确认弹出窗口上执行了两次。怎么修?
- javascript - 在预加载器页面渲染之前立即显示网站主页
- c++ - C++ - 指定模板值类型
- python - 如何防止拆分字符串中的转义换行符(python)
- visual-studio-code - Windows 10 上的 Vscode - 无法为 Julia 1.5.3 启动可执行 shell 的路径
- firebase - Firebase Functions 部署需要在 GCP 中进行键盘输入
- autodesk-forge - 发送较大文件时出现重叠范围错误
- php - 在 magento 2.4.1 中应用更新命令后,前端缺少图标、图像和 javascript 文件?