OSDN Git Service

Regular updates
[twpd/master.git] / psdrb.md
1 ---
2 title: PSD.rb
3 category: Ruby libraries
4 layout: 2017/sheet
5 intro: |
6   [PSD.rb](https://github.com/layervault/psd.rb) parses Photoshop documents in Ruby.
7 ---
8
9 ### Opening
10
11 ```ruby
12 psd = PSD.new(file, parse_layer_images: true)
13 psd.parse!
14 ```
15
16 ### Traversing
17
18 ```ruby
19 # Gets the root node.
20 # A #<Node> can be a Group or a Layer.
21 node = psd.tree
22 ```
23
24 ```ruby
25 node.root
26 node.descendants
27 node.ancestors
28 node.siblings
29 node.subtree
30 ```
31
32 ```ruby
33 node.descendant_groups
34 node.descendant_layers
35 ```
36
37 ### Layer info
38
39 ```ruby
40 node.name   #=> "Layer 2"
41 ```
42
43 ```ruby
44 node.top    #=> 3
45 node.left   #=> 3
46 node.bottom
47 node.right
48 ```
49
50 ```ruby
51 # Note: these are interchanged (?)
52 node.width
53 node.height
54 ```
55
56 ```ruby
57 node.visible?
58 node.hidden?
59 ```
60
61 ```ruby
62 node.layer?
63 node.group?
64 ```
65
66 ```ruby
67 node.blending_mode  #=> "normal"
68 node.opacity        #=> 0..255
69 node.fill_opacity   #=> 0..255
70 ```
71
72 ### Layer text
73
74 ```ruby
75 node.text                  #=> (Hash)
76 node.text[:value]          #=> "Text here"
77 node.text[:font][:name]    #=> "Arial"
78 node.text[:font][:sizes]   #=> [6.9]
79 node.text[:font][:colors]  #=> [[255,255,255,255]]
80 node.text[:font][:css]     #=> "font-family: ...;"
81 node.text[:left]           #=> 3
82 node.text[:top]
83 node.text[:right]
84 node.text[:bottom]
85 node.text[:transform]      #=> (Hash)
86 ```
87
88 ### Layer effects
89
90 ```ruby
91 fx = node.info[:object_effects]
92 ```
93
94 ```ruby
95 fx.data['Scl ']   # ?
96 fx.data['GrFl']   # Gradient fill
97 ```
98
99 ### Layer mask
100
101 ```ruby
102 node.mask["mask_size"] == 0    # No mask
103 node.mask["mask_size"] == 20   # Has mask
104 node.mask["top"]
105 node.mask["left"]
106 node.mask["bottom"]
107 node.mask["right"]
108 ```
109
110 ### Reference
111
112  * [layervault/psd.rb](https://github.com/layervault/psd.rb) _(github.com)_