0.0.10 • Published 9 years ago

fotofoto v0.0.10

Weekly downloads
2
License
MIT
Repository
github
Last release
9 years ago

fotofoto

Unofficial simple wrapper library for Flashfoto API http://flashfotoapi.com/. Every APIs return Promise.

Usage

npm install fotofoto

APIs:

var FF = require('fotofoto');

var ff = new FF({
  username : '[[YOUR USER NAME]]',
  apikey : '[[YOUR API KEY]]'
});

// Upload to server.
// See also http://flashfotoapi.com/docs/add
var data = fs.readFileSync('file/path/to/imagefile.jpg');
ff.add(data, {
  privacy : 'private'
}).then(function(result) {
  console.log(result);
}, function(err) {
  console.error(err);
});

// Get list of uploaded images.
// See also http://flashfotoapi.com/docs/find
ff.find().then(function(images) {
  console.log(images);
}, function(err) {
  console.error(err);
});

// Request segment processing.
// See also http://flashfotoapi.com/docs/segment
ff.segment('[[IMAGE_ID]]').then(function(res) {
  console.log(res);
}, function(err) {
  console.error(err);
});

// Check segment processing status.
// See also http://flashfotoapi.com/docs/segmentstatus
ff.segmentStatus('[[IMAGE_ID]]').then(function(status) {
  console.log(status);
}, function(err) {
  console.error(err);
});

// Get processed image.
// See also http://flashfotoapi.com/docs/get
ff.get('[[IMAGE_ID]]', {
  version : 'HardMasked'
}).then(function(image) {
  fs.writeFileSync('output.png', image);
}, function(err) {
  console.error(err);
});

Automated processing example

Upload, Request segment, wait, and get result images.

var fotofoto = require('fotofoto'),
    fs = require('fs');

var ff = new fotofoto({
  username : '[[YOUR NAME]]',
  apikey : '[[YOUR KEY]]'
});

var imageData = fs.readFileSync('test.jpg');
ff.add(imageData)
  .then(function(result) {

    console.log('add result', result);

    var id = result.Image.id;

    return ff.segment(id)
      .then(function(result) {

        console.log('segment result', result);

        return ff.waitForSegmentation(id);

      }).then(function() {

        return ff.info(id);

      }).then(function(info) {

        console.log('info result', info);

        // Save processed image
        var promises = info.ImageVersion.map(function(imgVer) {

          if (imgVer.version === 'HardMasked') {

            // save image to output.png
            return ff.get(id, {
              version: imgVer.version
            }).then(function(processedImage) {
              fs.writeFileSync('output-HardMasked.png', processedImage);
            });
          }

          return Promise.resolve();
        });

        return Promise.all(promises);
      });
  })
  .then(function() {
    console.log('END');
  });

See also official REST API documents

0.0.10

9 years ago

0.0.9

10 years ago

0.0.8

10 years ago

0.0.7

10 years ago

0.0.6

10 years ago

0.0.5

10 years ago

0.0.4

10 years ago

0.0.2

10 years ago

0.0.1

10 years ago