4

我正在使用节点画布生成 HTML5 生成画布的 PNG 图像(使用fabric.js)。我安装它使用:

$ PKG_CONFIG_PATH=/usr/X11/lib/pkgconfig npm install canvas

当画布仅包含 PNG 图像时,node-canvas 将输出图像渲染得很好。但是,如果画布还嵌入了 JPEG 图像,则会引发异常并退出:

/Users/sa125/node_modules/fabric/dist/all.js:14238
      ctx.drawImage(
          ^
Error: Image given has not completed loading
    at klass.fabric.Image.fabric.util.createClass._render (/Users/sa125/node_modules/fabric/dist/all.js:14238:11)
    at klass.fabric.Image.fabric.util.createClass.render (/Users/sa125/node_modules/fabric/dist/all.js:14108:12)
    at extend._draw (/Users/sa125/node_modules/fabric/dist/all.js:6001:16)
    at extend.renderAll (/Users/sa125/node_modules/fabric/dist/all.js:6147:16)
    at extend.insertAt (/Users/sa125/node_modules/fabric/dist/all.js:6052:37)
    at fabric.util.object.extend._enlivenObjects (/Users/sa125/node_modules/fabric/dist/all.js:8950:15)
    at Array.forEach (native)
    at fabric.util.object.extend._enlivenObjects (/Users/sa125/node_modules/fabric/dist/all.js:8949:24)
    at onLoaded (/Users/sa125/node_modules/fabric/dist/all.js:2082:11)
    at /Users/sa125/node_modules/fabric/dist/all.js:2101:11

这不是结构问题,因为在 Ubuntu linux 上运行相同的画布生成器时,所有图像都可以正常显示(JPEG 和 PNG)

所以基本上这是一个依赖问题 - 知道我需要什么brew install才能让它工作吗?我已经安装了 libjpeg,以及 pango、cairo、pixbuf 等。但是,我必须使用上面的 PKG_CONFIG 安装 node-canvas,因为其他任何东西都会破坏安装,可能是由于自制软件如何处理一些链接。谢谢。

4

0 回答 0