阅读更多

1顶
0踩

开源软件
PSD(Photoshop Document)是Adobe Photoshop的专用格式,这种格式可以存储Photoshop中所有的图层,通道、参考线、注解和颜色模式等信息。

今天,开发者LayerVault在Github上开源了一个可以读写PSD文档的工具——PSD.rb,该工具使用Ruby编写,允许你以一种易管理的树结构方式来处理Photoshop文档,从而找出文档中的重要数据,比如:

  • 文档结构
  • 文件大小
  • 图层/目录大小和配置信息
  • 图层/目录名称
  • 图层/目录的可见性和透明度
  • 字体数据(via psd-enginedata),包括文本区域内容以及字体名称、大小和颜色
  • 颜色模式和位深度
  • 矢量蒙版数据
  • 扁平化图像数据
项目地址:https://github.com/layervault/psd.rb

国内镜像地址:https://code.csdn.net/OS_Mirror/psd.rb

下面来看看一些示例代码。

加载PSD文件:

require 'psd'

psd = PSD.new('/path/to/file.psd')
psd.parse!


遍历文档

以树结构方式访问PSD文件,可使用psd.tree来获得根节点。该工具还提供了如下方法来访问相应的元素:

  • root:获得根节点
  • ancestors:获得当前节点所在路径的祖先(不含根节点)
  • siblings:获得当前节点的所有兄弟节点
  • descendants:获得当前节点的所有后代节点
  • subtree:和descendants类似,但不包含当前节点
  • depth:计算当前节点的深度
访问图层数据:

psd.tree.descendant_layers.first.type.font

# Returns
{:name=>"HelveticaNeue-Light",
 :sizes=>[33.0],
 :colors=>[[255, 19, 120, 98]],
 :css=>
  "font-family: \"HelveticaNeue-Light\", \"AdobeInvisFont\", \"MyriadPro-Regular\";\nfont-size: 33.0pt;\ncolor: rgba(19, 120, 98, 255);"}


导出数据

pp psd.tree.to_hash


生成的数据格式如下:

{:children=>
  [{:type=>:group,
    :visible=>false,
    :opacity=>1.0,
    :blending_mode=>"normal",
    :name=>"Version D",
    :left=>0,
    :right=>900,
    :top=>0,
    :bottom=>600,
    :height=>900,
    :width=>600,
    :children=>
     [{:type=>:layer,
       :visible=>true,
       :opacity=>1.0,
       :blending_mode=>"normal",
       :name=>"Make a change and save.",
       :left=>275,
       :right=>636,
       :top=>435,
       :bottom=>466,
       :height=>31,
       :width=>361,
       :text=>
        {:value=>"Make a change and save.",
         :font=>
          {:name=>"HelveticaNeue-Light",
           :sizes=>[33.0],
           :colors=>[[255, 19, 120, 98]],
           :css=>
            "font-family: \"HelveticaNeue-Light\", \"AdobeInvisFont\", \"MyriadPro-Regular\";\nfont-size: 33.0pt;\ncolor: rgba(19, 120, 98, 255);"},
         :left=>0,
         :top=>0,
         :right=>0,
         :bottom=>0,
         :transform=>
          {:xx=>1.0, :xy=>0.0, :yx=>0.0, :yy=>1.0, :tx=>456.0, :ty=>459.0}},
       :ref_x=>264.0,
       :ref_y=>-3.0}]
  }],
:document=>{:width=>900, :height=>600}}


你还可以将PSD文件导出为一个图像文件:

png = psd.image.to_png # reference to PNG data
psd.image.save_as_png 'path/to/output.png' # writes PNG to disk

1
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • psd.rb:轻松解析Ruby中的Photoshop文件

    它使您能够以可管理的树状结构使用Photoshop文档,并找出重要数据,例如: 文件结构文件尺寸图层/文件夹大小+位置层/文件夹名称图层/文件夹的可见性和不透明度字体数据(通过 ) 文字区域内容字体名称,大小和颜色...

  • psd.js:用于NodeJS和浏览器的Photoshop PSD文件解析器

    基于 它使您能够以可管理的树状结构处理Photoshop文档,并找出重要数据,例如: 文件结构 文件尺寸 图层/文件夹大小+位置 层/文件夹名称 图层/文件夹的可见性和不透明度 字体数据(通过 ) 文字区域内容 字体名称...

  • psdJs:用 Javascript 编写的 Photoshop 文档 (PSD) 解析库

    psdj psdJs 是一个 Javascript 实验,旨在探索为 Photoshop 文档 (PSD) 构建解析器。 注意:此库尚未完成。 当我开始时,JS 中的 PSD Parsing Libs 并不多,但最近在 github 上出现了一些,所以我想我会开源这个。 ...

  • PSD.rb.zip

    PSD.rb 是一个使用Ruby编写的通用的PhotoShop文档解析器,该工具允许你以一种易管理的树结构方式来处理Photoshop文档,从而找出文档中的重要数据,如: 文档结构 文件大小 图层/目录大小和配置信息 图层/...

  • JavaScript的PSD解析库psd.js.zip

    psd.js 是一个用来解析 PhotoShop 的 PSD 文件的 JavaScript 库,支持在浏览器上运行以及 Node.js 环境中使用。 示例代码: {PSD} = require 'psd' psd = PSD.fromFile __dirname '/test.psd' psd.parse() ...

  • Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Not unique table/alias: 'e'

    1、错误原因base.dao.impl.BaseDaoImpl org.hibernate.exception.SQLGrammarException: error executing work at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate....

  • 无需Adobe Photoshop依赖项!PSD管理控件Aspose.PSD重磅上线!

    Aspose.PSD是高级PSD文件格式操作API,没有任何Adobe Photoshop依赖项。API允许创建或编辑Photoshop文件,并提供更新图层属性,添加水印,执行图形操作或将一种文件格式转换为另一种文件的功能。 Aspose.PSD ...

  • psd.js中文文档(译)

    它让你可以用可管理的树结构来处理Photoshop文档,并得到关键数据,例如:文件结构文件大小图层/目录大小+定位图层/目录名图层/目录可见性和不透明度字体数据(通过psd-enginedata)文本内容字体种类,大小,...

  • 【Photoshop C++】解析 PSD文档

    来源:导入Adobe Photoshop (.psd)图像 Adobe Photoshop档案格式规格:https://www.adobe.com/devnet-apps/photoshop/fileformatashtml/#50577409_89817 vs2017案例

  • Ruby-PSDrb在Ruby中轻松解析Photoshop文件

    PSD.rb - 在Ruby中轻松解析Photoshop文件

  • Photoshop脚本编程jsx开发三:ps的基础操作,文档结构等

    ps编程主要用的js + dom基础, 可参考: 参考jsx开发: 各种工具:https://blog.csdn.net/greless/article/details/105975027 操作Excel:https://blog.csdn.net/greless/article/details/109486277 ...

  • C# System.UnauthorizedAccessException:“对路径“C:\xxx”的访问被拒绝。

    C# 程序运行时提示 对路径“C:\xxx”的访问被拒绝。System.UnauthorizedAccessException:“对路径“C:\Excel2007.xlsx... 以管理员身份运行,然后就不会有这个报错了。 转载于:https://blog.51cto.com/mervin/...

  • psd.js 解析PSD文件

    psd.js解析PSD文件。

  • PhotoShop导出为QML插件

    一个非常实用的PhotoShop插件,用来将一个Psd文件直接转换成QML代码,以及按图层分别保存为单独的图片。图像对应转换为QML的Image元素,文字对应为Text。使用方式参考资源中的ReadMe,或是这里...

  • 在C#中以编程方式将PNG或JPG图像转换为PSD指南出炉!

    而Photoshop文档(PSD)文件包含几层来显示图片。您可以在.NET应用程序中使用C#以编程方式轻松地将PNG或JPG图像转换为PSD格式。本文涵盖以下与PNG和JPG图像转换有关的部分: 使用C#以编程方式将PNG图像转换为PSD...

  • Photoshop(PS)基础操作

    Photoshop(PS)基础操作

  • PhotoShop .psd文件格式读取分析(结合unity)

    用了photoshop那么久,从来没仔细想过它到底用了哪些算法。想一想就觉得倒抽一口凉气。 传闻photoshop的创始人,和wps创始人一样,就一个程序员写好了这第一版的成品。同样是做人,咋就差距这么大呢? 千古疑问 ...

  • photoshop二次开发python_PhotoShop工具开发之Python(二)

    接上篇前面学会了,怎么打开-关闭 PhotoShop, 今天就来学怎么编辑-导出保存首先连接PhotoShop,学以致用from comtypes.client import CreateObjectps_app = CreateObject("Photoshop.Application", dynamic=True)一....

  • Photoshop: 将图片转换成psd格式

    具体操作步骤如下: 一、准备好Jpeg图片,将图片专门放置在一个文件夹内。...五、等待文件转换完成即可,转换完成后,找到导出位置,打开PSD文件。 六、可以看到已经将jpeg格式转为psd格式了。 ...

  • 【Unity编辑器扩展】(一)PSD转UGUI Prefab, Aspose.PSD和Harmony库的使用

    UI设计师常用工具adobe illustrator和Photoshop,而adobe illustrator也可以导出为psd文件,所以写一个工具直接根据Photoshop文件(psd)自动生成拼好的UI界面prefab岂不美哉? 一,Aspose.PSD .Net库的使用 Aspose....

Global site tag (gtag.js) - Google Analytics