【问题标题】:Exporting fabric.js canvas to printable file将 fabric.js 画布导出到可打印文件
【发布时间】:2015-11-05 17:48:19
【问题描述】:

我正在开发一款用于设计定制围巾的在线应用。经过初步研究,我发现我可以为此目的使用 Fabric.js。然而,当谈到 2D 设计和画布时,我是新手。我想为用户提供一个画布,他们可以在其中上传图像/图案并在那里设计围巾。

围巾尺寸为 90*90 厘米。并且我有要求以Eps / AI格式或高分辨率图像文件向印刷公司提供实际尺寸的围巾设计。这是我有点迷路的地方。画布的尺寸是多少。如何确定上传的图像是否具有高分辨率。

谢谢

【问题讨论】:

    标签: javascript html canvas fabricjs


    【解决方案1】:

    90 厘米约为 34 英寸。 如果您考虑高分辨率,假设 150 DPI,您将获得类似 5000x5000 的画布。

    现在 5000 x 5000 是 25 兆像素的图片,对于浏览器来说很难处理。 您可以尝试创建一个 5000 x 5000 的织物画布,您将体验到糟糕的性能。

    您可以使用 canvas.toSVG() 将 SVG 导出,然后使用您选择的可以处理大文件的库将 SVG 光栅化为 PNG 或 JPEG。

    【讨论】:

    • 是创建一个小画布然后在服务器端将其缩放为 5000x5000 图像的正确策略吗?
    • 取决于缩放器。无论如何,nodejs 上的 fabricjs 会占用大量内存。但如果 node-canvas 比标准的 html5 画布更灵活,它可能是。我目前正在服务器上搜索一个好的 svg rasterizer 来解决这个问题。
    • 我正在尝试在服务器上使用 imagemagick?另外,如果您有一个 150x150 像素的画布,但您上传的是 1000x1000 的图像,那么画布上的图像会很大。有什么策略可以自动缩小吗?
    • 感谢@AndreaBogazzi,现在我处理这个问题的方式是 1) 使用 canvas.toDataURL(1,'png') 并将其保存为服务器上的 png 2) 使用 JSON.stringify 保存画布(画布)用于编辑目的。为了获得高分辨率图像(300 dpi)并缩放图像(用于打印),我使用 GIMP。
    猜你喜欢
    • 2014-11-29
    • 2015-01-23
    • 2012-03-26
    • 2011-07-10
    • 1970-01-01
    • 1970-01-01
    • 2018-11-14
    • 2012-12-01
    • 2016-07-10
    相关资源
    最近更新 更多