summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authormeltingice <meltingice8917@gmail.com>2012-04-21 15:53:47 -0400
committermeltingice <meltingice8917@gmail.com>2012-04-21 15:53:47 -0400
commitaeac3432b0379e1f73b8cc0383a87ac4c82e9c1b (patch)
tree454c1bde019c3fdb799913f00e09428e5ca34b53 /src
parentFix file data being included with image resources (diff)
downloadpsd.js-0.4.2.tar.xz
psd.js-0.4.2.zip
Fix bug with PSD adjustment layer effects getting file data into JSON exportv0.4.2
Diffstat (limited to 'src')
-rwxr-xr-xsrc/layerdata/layereffect.coffee11
-rwxr-xr-xsrc/psdfile.coffee2
-rwxr-xr-xsrc/psdlayer.coffee6
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 = {}