diff options
Diffstat (limited to 'src')
| -rwxr-xr-x | src/layerdata/layereffect.coffee | 11 | ||||
| -rwxr-xr-x | src/psdfile.coffee | 2 | ||||
| -rwxr-xr-x | src/psdlayer.coffee | 6 |
3 files changed, 14 insertions, 5 deletions
diff --git a/src/layerdata/layereffect.coffee b/src/layerdata/layereffect.coffee index b92922c..d69586d 100755 --- a/src/layerdata/layereffect.coffee +++ b/src/layerdata/layereffect.coffee @@ -3,7 +3,7 @@ class PSDLayerEffect - constructor: (@file) -> + constructor: (@file) -> parse: -> # these are common to all effects @@ -22,6 +22,8 @@ class PSDLayerEffectCommonStateInfo extends PSDLayerEffect # unused @file.read(2) + {visible: @visible} + # Based on https://github.com/alco/psdump/blob/master/libpsd-0.9/src/drop_shadow.c class PSDDropDownLayerEffect extends PSDLayerEffect @@ -68,3 +70,10 @@ class PSDDropDownLayerEffect extends PSDLayerEffect [@opacity] = @file.read(1) @nativeColor = @getSpaceColor() if @version == 2 + + data = {} + for own key, val of @ + continue if key is "file" + data[key] = val + + data diff --git a/src/psdfile.coffee b/src/psdfile.coffee index 4d9c7af..417f8ec 100755 --- a/src/psdfile.coffee +++ b/src/psdfile.coffee @@ -65,7 +65,7 @@ class PSDFile readString: (length) -> ret = [] ret[i] = String.fromCharCode @read(1)[0] for i in [0...length] - ret.join '' + ret.join('').replace /\u0000/g, "" # Used for reading pascal strings, which are strings that have their length # prepended to the chunk of character bytes. If a length isn't found, a diff --git a/src/psdlayer.coffee b/src/psdlayer.coffee index a490bd2..9da4ad8 100755 --- a/src/psdlayer.coffee +++ b/src/psdlayer.coffee @@ -334,14 +334,14 @@ class PSDLayer when "dsdw" then new PSDDropDownLayerEffect @file when "isdw" then new PSDDropDownLayerEffect @file, true # inner drop shadow - effect?.parse() + data = effect?.parse() left = (pos + size) - @file.tell() if left != 0 Log.debug("Failed to parse effect layer with type #{type}") @file.seek left else - effects.push(effect) unless type == "cmnS" # ignore commons state info + effects.push(data) unless type == "cmnS" # ignore commons state info @adjustments.effects = effects @@ -367,9 +367,9 @@ class PSDLayer 'cols' 'channelsInfo' 'mask' - 'adjustments' 'layerType' 'blendMode' + 'adjustments' ] data = {} |
