将画布导出到图像文件的最佳方法?

时间:2015-06-21 09:44:47

标签: php ajax html5-canvas export kineticjs

我在设计工具上工作,用户可以在A4纸上上传图像,写文字标签等。我在KineticJS库中使用canvas,我在kineticJS上构建了整个项目。结果必须以300DPI尺寸打印。 由于我有很多层,大多数图像由用户加载,旋转,调整大小,彩色等...

我已设法使用以下步骤保存300dpi png文件:

  1. 计算300DPI尺寸的设计以像素为单位,得到一个变量 coef
  2. 将舞台大小设置为300DPI(乘以实际宽度 和coef
  3. 的高度
  4. 浏览了所有图层,并将所有对象的大小调整为300DPI大小,与舞台大小相同
  5. 使用带有回调函数的stage.toDataURL()将原始数据发送到php
  6. 将PHP中的原始数据保存为PNG文件
  7. 除了使用设备内存和浏览器资源在客户端计算机上运行所有导出外,一切正常。这会导致“浏览器无响应”几秒钟(有时超过10秒)并冻结整个设备。

    我的问题是,有更好的方法将其导出到PNG吗?我在想两件事: 1.在javascript中找到更好的解决方案(使用kineticjs) 2.将所有数据发送到PHP(图层和属性列表)并在PHP中重建,然后导出它。这个的问题是我不知道它是否能够像在画布中一样重建它。重建文本标签将是一堆工作/时间和难度:它有颜色,打击颜色,打击宽度,字体大小,不透明度,最重要的是它使用谷歌字体,我不知道怎么可以用于PHP。

    我真的指望你的意见!谢谢!

0 个答案:

没有答案