psd
Version:
A general purpose Photoshop file parser.
59 lines (48 loc) • 1.42 kB
text/coffeescript
_ = require 'lodash'
Node = require '../node.coffee'
Group = require './group.coffee'
Layer = require './layer.coffee'
module.exports = class Root extends Node
: (psd) ->
layer = {}
layer[prop] = null for prop in Node.PROPERTIES
layer.top = 0
layer.left = 0
layer.right = psd.header.width
layer.bottom = psd.header.height
layer
type: 'root'
constructor: () ->
super Root.layerForPsd()
documentDimensions: -> [
,
]
depth: -> 0
opacity: -> 255
fillOpacity: -> 255
export: ->
children: .map((c) -> c.export())
document:
width:
height:
resources:
layerComps: .resources.resource('layerComps')?.export() or []
resolutionInfo: .resources.resource('resolutionInfo')?.export() or []
guides: .resources.resource('guides')?.export()
slices: []
buildHeirarchy: ->
currentGroup = @
parseStack = []
for layer in .layers
if layer.isFolder()
parseStack.push currentGroup
currentGroup = new Group(layer, _.last(parseStack))
else if layer.isFolderEnd()
parent = parseStack.pop()
parent.children().push currentGroup
currentGroup = parent
else
currentGroup.children().push new Layer(layer, currentGroup)