Node module for using smartcrop via image magick
Switch branches/tags
Nothing to show
Clone or download
Latest commit d065587 Feb 12, 2018
Permalink
Failed to load latest commit information.
test 2.0.2 Feb 11, 2018
.editorconfig init Jun 19, 2016
.eslintrc.js 2.0.2 Feb 11, 2018
.gitignore init Jun 19, 2016
.jscsrc init Jun 19, 2016
.jshintrc init Jun 19, 2016
.npmignore init Jun 19, 2016
.travis.yml 2.0.2 Feb 11, 2018
.vimrc init Jun 19, 2016
LICENSE Create LICENSE Feb 12, 2018
README.md Move gm back as a regular dependency. Feb 11, 2018
index.js 2.0.2 Feb 11, 2018
package-lock.json Move gm back as a regular dependency. Feb 11, 2018
package.json Move gm back as a regular dependency. Feb 11, 2018

README.md

smartcrop-gm

Build Status

This is an adapter module for using smartcrop.js with node.js using gm for image decoding.

Smartcrop-gm requires image magick to be installed and available in $PATH to function.

Installation

npm install --save smartcrop-gm

API

crop(image, options)

Image: string (path to file) or buffer

Options: options object to be passed to smartcrop

returns: A promise for a cropResult

Example

var request = require('request');
var gm = require('gm').subClass({ imageMagick: true });
var smartcrop = require('smartcrop-gm');

function applySmartCrop(src, dest, width, height) {
  request(src, { encoding: null }, function process(error, response, body) {
    if (error) return console.error(error);
    smartcrop.crop(body, { width: width, height: height }).then(function(result) {
      var crop = result.topCrop;
      gm(body)
        .crop(crop.width, crop.height, crop.x, crop.y)
        .resize(width, height)
        .write(dest, function(error) {
          if (error) return console.error(error);
        });
    });
  });
}

var src = 'https://raw.githubusercontent.com/jwagner/smartcrop-gm/master/test/flower.jpg';
applySmartCrop(src, 'flower-square.jpg', 128, 128);

Face Detection

Check out smartcrop-cli for a more advanced example of how to use smartcrop from node including face detection with opencv.

Security Considerations

smartcrop-gm is using imagemagick for decoding and resampling images. A number of security issues have been found in imagemagick recently. Make sure that you take the appropriate steps to protect your infrastructure.