|
92 | 92 | <span class="k">return</span> <span class="nx">@file</span><span class="p">.</span><span class="nx">seek</span> <span class="nx">@layerEnd</span><span class="p">,</span> <span class="kc">false</span>
|
93 | 93 |
|
94 | 94 | <span class="nx">@parseBlendingRanges</span><span class="p">()</span>
|
95 |
| - <span class="nx">@parseLayerName</span><span class="p">()</span> |
| 95 | + <span class="nx">@parseLegacyLayerName</span><span class="p">()</span> |
96 | 96 | <span class="nx">@parseExtraData</span><span class="p">()</span>
|
97 | 97 |
|
| 98 | + <span class="vi">@name = </span><span class="nx">@legacyName</span> <span class="nx">unless</span> <span class="nx">@name</span><span class="o">?</span> |
| 99 | + |
98 | 100 | <span class="nx">Log</span><span class="p">.</span><span class="nx">debug</span> <span class="s2">"Layer #{layerIndex}:"</span><span class="p">,</span> <span class="err">@</span></pre></div> </td> </tr> <tr id="section-6"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-6">¶</a> </div> <p>In case there are filler zeros</p> </td> <td class="code"> <div class="highlight"><pre> <span class="nx">@file</span><span class="p">.</span><span class="nx">seek</span> <span class="nx">extrastart</span> <span class="o">+</span> <span class="nx">extralen</span><span class="p">,</span> <span class="kc">false</span></pre></div> </td> </tr> <tr id="section-7"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-7">¶</a> </div> <p>Parse important information about this layer such as position, size,
|
99 | 101 | and channel info. Layer Records section.</p> </td> <td class="code"> <div class="highlight"><pre> <span class="nv">parseInfo: </span><span class="nf">(layerIndex) -></span>
|
100 | 102 | <span class="vi">@idx = </span><span class="nx">layerIndex</span></pre></div> </td> </tr> <tr id="section-8"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-8">¶</a> </div> <h1>#</h1> </td> <td class="code"> <div class="highlight"><pre> <span class="nx">Layer</span> <span class="nx">Info</span></pre></div> </td> </tr> <tr id="section-9"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-9">¶</a> </div> <h1>#</h1> </td> <td class="code"> <div class="highlight"><pre> <span class="p">[</span><span class="nx">@top</span><span class="p">,</span> <span class="nx">@left</span><span class="p">,</span> <span class="nx">@bottom</span><span class="p">,</span> <span class="nx">@right</span><span class="p">,</span> <span class="nx">@channels</span><span class="p">]</span> <span class="o">=</span> <span class="nx">@file</span><span class="p">.</span><span class="nx">readf</span> <span class="s2">">iiiih"</span>
|
|
191 | 193 | <span class="nv">white: </span><span class="nx">@file</span><span class="p">.</span><span class="nx">readShortInt</span><span class="p">()</span>
|
192 | 194 | <span class="nv">dest: </span>
|
193 | 195 | <span class="nv">black: </span><span class="nx">@file</span><span class="p">.</span><span class="nx">readShortInt</span><span class="p">()</span>
|
194 |
| - <span class="nv">white: </span><span class="nx">@file</span><span class="p">.</span><span class="nx">readShortInt</span><span class="p">()</span></pre></div> </td> </tr> <tr id="section-24"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-24">¶</a> </div> <p>Parse the name of this layer</p> </td> <td class="code"> <div class="highlight"><pre> <span class="nv">parseLayerName: </span><span class="o">-></span></pre></div> </td> </tr> <tr id="section-25"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-25">¶</a> </div> <p>Name length is padded in multiples of 4</p> </td> <td class="code"> <div class="highlight"><pre> <span class="nv">namelen = </span><span class="nx">Util</span><span class="p">.</span><span class="nx">pad4</span> <span class="nx">@file</span><span class="p">.</span><span class="nx">read</span><span class="p">(</span><span class="mi">1</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> |
195 |
| - <span class="vi">@name = </span><span class="nx">@file</span><span class="p">.</span><span class="nx">readString</span> <span class="nx">namelen</span> |
| 196 | + <span class="nv">white: </span><span class="nx">@file</span><span class="p">.</span><span class="nx">readShortInt</span><span class="p">()</span></pre></div> </td> </tr> <tr id="section-24"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-24">¶</a> </div> <p>Parse the name of this layer. This is considered the "legacy" |
| 197 | +name because it is encoded with MacRoman encoding. PS >= 5.0 |
| 198 | +includes a unicode version of the name, which is in the additional |
| 199 | +layer information section.</p> </td> <td class="code"> <div class="highlight"><pre> <span class="nv">parseLegacyLayerName: </span><span class="o">-></span></pre></div> </td> </tr> <tr id="section-25"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-25">¶</a> </div> <p>Name length is padded in multiples of 4</p> </td> <td class="code"> <div class="highlight"><pre> <span class="nv">namelen = </span><span class="nx">Util</span><span class="p">.</span><span class="nx">pad4</span> <span class="nx">@file</span><span class="p">.</span><span class="nx">read</span><span class="p">(</span><span class="mi">1</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> |
| 200 | + <span class="vi">@legacyName = </span><span class="nx">Util</span><span class="p">.</span><span class="nx">decodeMacroman</span><span class="p">(</span><span class="nx">@file</span><span class="p">.</span><span class="nx">read</span><span class="p">(</span><span class="nx">namelen</span><span class="p">)).</span><span class="nx">replace</span> <span class="sr">/\u0000/g</span><span class="p">,</span> <span class="s1">''</span> |
196 | 201 |
|
197 | 202 | <span class="nx">Log</span><span class="p">.</span><span class="nx">debug</span> <span class="s2">"Layer name: #{@name}"</span>
|
198 | 203 |
|
|
230 | 235 | <span class="vi">@adjustments.typeTool = </span><span class="p">(</span><span class="k">new</span> <span class="nx">PSDTypeTool</span><span class="p">(</span><span class="err">@</span><span class="p">,</span> <span class="nx">length</span><span class="p">)).</span><span class="nx">parse</span><span class="p">(</span><span class="kc">true</span><span class="p">)</span>
|
231 | 236 | <span class="k">when</span> <span class="s2">"TySh"</span> <span class="c1"># PS >= 6</span>
|
232 | 237 | <span class="vi">@adjustments.typeTool = </span><span class="p">(</span><span class="k">new</span> <span class="nx">PSDTypeTool</span><span class="p">(</span><span class="err">@</span><span class="p">,</span> <span class="nx">length</span><span class="p">)).</span><span class="nx">parse</span><span class="p">()</span>
|
| 238 | + <span class="k">when</span> <span class="s2">"luni"</span> <span class="c1"># PS >= 5.0</span> |
| 239 | + <span class="vi">@name = </span><span class="nx">@file</span><span class="p">.</span><span class="nx">readUnicodeString</span><span class="p">()</span> |
233 | 240 | <span class="k">when</span> <span class="s2">"lyid"</span>
|
234 | 241 | <span class="vi">@layerId = </span><span class="nx">@file</span><span class="p">.</span><span class="nx">readInt</span><span class="p">()</span>
|
235 | 242 | <span class="k">when</span> <span class="s2">"lsct"</span>
|
|
0 commit comments