Cheat Sheet速查表
跳转到主要内容

PSD.rb 速查表

本文根据 Devhints / PSD.rb 翻译。代码示例及版本范围沿用原文。

PSD.rb 解析 Ruby 中的 Photoshop 文档。

打开

psd = PSD.new(file, parse_layer_images: true)
psd.parse!

遍历

# Gets the root node.
# A #<Node> can be a Group or a Layer.
node = psd.tree
node.root
node.descendants
node.ancestors
node.siblings
node.subtree
node.descendant_groups
node.descendant_layers

图层信息

node.name   #=> "Layer 2"
node.top    #=> 3
node.left   #=> 3
node.bottom
node.right
# Note: these are interchanged (?)
node.width
node.height
node.visible?
node.hidden?
node.layer?
node.group?
node.blending_mode  #=> "normal"
node.opacity        #=> 0..255
node.fill_opacity   #=> 0..255

图层文本

node.text                  #=> (Hash)
node.text[:value]          #=> "Text here"
node.text[:font][:name]    #=> "Arial"
node.text[:font][:sizes]   #=> [6.9]
node.text[:font][:colors]  #=> [[255,255,255,255]]
node.text[:font][:css]     #=> "font-family: ...;"
node.text[:left]           #=> 3
node.text[:top]
node.text[:right]
node.text[:bottom]
node.text[:transform]      #=> (Hash)

图层效果

fx = node.info[:object_effects]
fx.data['Scl ']   # ?
fx.data['GrFl']   # Gradient fill

图层蒙版

node.mask["mask_size"] == 0    # No mask
node.mask["mask_size"] == 20   # Has mask
node.mask["top"]
node.mask["left"]
node.mask["bottom"]
node.mask["right"]

参考资料