将PSD导入画布

时间:2015-08-18 08:37:38

标签: canvas fabricjs psd

我正在使用fabricjs构建一个用于创建自定义产品的应用程序。

我想知道我们是否可以直接将PSD文件导入画布?

像所有图层一样,它们会自动转换为画布对象,并使用适当的属性进行设置。

由于 拉胡

2 个答案:

答案 0 :(得分:0)

PSD与PNG,JPEG或GIF文件并不完全相同,但如果浏览器制造商希望它可以在不同程度上轻松支持,那就不足为奇了。

PSD与其他格式不同。其他图形格式专为通过网络传输而设计。 PNG代表便携式网络图形。 GIF代表图形交换格式。 JPEG代表联合图像专家组。

对比:

  

PSD文件存储的图像支持大多数成像选项   在Photoshop中可用。这些包括带面具的层,透明度,   文本,Alpha通道和专色,剪切路径和双色调   设置。

PSD不仅包含构成图片的合成图层,还包含用于创建合成图像的所有图层。

将PSD的文件与PSD的JPEG导出进行比较。 JPEG的文件大小最终可能为50到100kb。 PSD的文件大小可以是1mb> 2GB。使用PSD,您可以继续在信息层上添加图层。

由于以下几个原因,人们不会在浏览器中使用PSD:

  1. 与其他格式(1MB + vs 50kb)相比太重了
  2. psd格式很难解析。规范不公开
  3. psd格式比其他格式需要更长的时间来解析
  4. 您必须要求photoshop创建PSD内容
  5. 没有打开格式所以无法扩展,无法修复bug,无法升级
  6. 如果存在竞争时间和更好的格式,那么添加对PSD的支持将是一个倒退
  7. 至于如何在浏览器中加载PSD,我认为这是可能的,但要实现这一目标需要一些工作。您需要能够将文件作为字节数组读入,然后才能创建位图数据。

    PSDParser类是一组ActionScript3类,可以将PSD文件解析为PSD图层数组。这些PSD层具有位图数据,大小,位置等。使用该信息,您可以将这些位图图像绘制到画布上。

    BTW ActionScript3是JavaScript的兄弟。大约90%的代码可以互换。

答案 1 :(得分:0)

是的,可以将PSD转换为画布(fabricjs为json)

将PSD转换为Canvas到PDF / SVG / PNG / JPEG / JSON的构建工具的过程

  1. psd.rb / psd.js这些PSD解析器库用于解析导入的PSD,并将其转换为画布对象。
  2. 迭代PSD对象的层。
  3. 将对象添加到画布中
  4. 订购添加的对象。

更多详细信息,请参见 https://www.codementor.io/kpomservices/how-and-why-i-built-tool-to-convert-psd-to-canvas-to-pdf-svg-png-jpeg-json-ykakhws33