Commit d9eb995e authored by Ryan LeFevre's avatar Ryan LeFevre

Add asynchronous open

parent ad21712f
var PSD = require('../'); var PSD = require('../');
psd = PSD.fromFile('./examples/images/example.psd'); psd = PSD.open('./examples/images/example.psd', function (psd) {
psd.parse(); console.log(psd.header.export());
console.log(psd.tree().children()[0].children()[0].nextSibling().export());
console.log(psd.header.export()); });
// psd.image.saveAsPng('./output.png').then(function () { // psd.image.saveAsPng('./output.png').then(function () {
// console.log("Finished!"); // console.log("Finished!");
// }); // });
\ No newline at end of file
console.log(psd.tree().children()[0].children()[0].nextSibling().export());
\ No newline at end of file
...@@ -13,6 +13,13 @@ module.exports = class PSD ...@@ -13,6 +13,13 @@ module.exports = class PSD
Root: require('./psd/nodes/root.coffee') Root: require('./psd/nodes/root.coffee')
@fromFile: (file) -> new PSD fs.readFileSync(file) @fromFile: (file) -> new PSD fs.readFileSync(file)
@open: (file, cb) ->
fs.readFile file, (err, data) ->
throw err if err?
psd = new PSD(data)
psd.parse()
cb(psd)
constructor: (data) -> constructor: (data) ->
@file = new File(data) @file = new File(data)
......
...@@ -15,6 +15,14 @@ module.exports = class LayerMask ...@@ -15,6 +15,14 @@ module.exports = class LayerMask
return if maskSize <= 0 return if maskSize <= 0
@parseLayers()
@parseGlobalMask()
@layers.reverse()
@file.seek finish
parseLayers: ->
layerInfoSize = Util.pad2 @file.readInt() layerInfoSize = Util.pad2 @file.readInt()
if layerInfoSize > 0 if layerInfoSize > 0
...@@ -27,6 +35,4 @@ module.exports = class LayerMask ...@@ -27,6 +35,4 @@ module.exports = class LayerMask
for i in [0...layerCount] for i in [0...layerCount]
@layers.push new Layer(@file, @header).parse() @layers.push new Layer(@file, @header).parse()
@layers.reverse() parseGlobalMask: ->
\ No newline at end of file
@file.seek finish
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment