从Fabric中的本地目录加载图像

时间:2019-08-29 15:53:21

标签: node.js fabricjs

我正在尝试使用node中的fabric.js从本地文件夹加载图像。 关于如何执行此操作的文件似乎很少。 大多数示例使用fabric.Image.fromURL(imageurl)

据我所知,这仅适用于Web网址,不适用于本地路径。 如果我错了,请纠正我,但是我已经尝试过

fabric.Image.fromURL(imgpath, (img) => {
    ...
}

会引发错误Coul not load img: /image/path/img.jpg

哪里

fs.readFile(imagepath, (err, i) => {
   ...
})

将成功读取文件,i将成为缓冲区。

加载本地图像的正确方法是什么? 我知道有一个fabric.Image.fromObject,但我不知道它想要什么类型的对象。

我当前正在将图像加载到2d画布对象中,用canvas.toDataURL()进行转换,然后将该网址放入{em>起作用的fabric.Image.fromURL()中,但是将图像转换为url是由于图像较大,速度非常慢。必须有一种直接加载图像并避免此问题的方法。

1 个答案:

答案 0 :(得分:2)

如果您正在使用使用新jsdom的fabricjs 3+,则可以使用文件url!

fabric.Image.fromURL(file://${__dirname}${filepath});

在fabricJS代码库上检查此处它们如何处理浏览器和节点中视觉测试图像的读取文件

https://github.com/fabricjs/fabric.js/blob/master/test/lib/visualTestLoop.js#L139