Merge remote-tracking branch 'HaykoKoryun/issue-413'

master
iCrawl 7 years ago
commit 15d3731b4a
  1. 1
      lib/convenience.js
  2. 43
      lib/convenience/avatar.js
  3. 27
      test/avatar.js
  4. BIN
      test/fixtures/avatar-compare.png

@ -8,4 +8,5 @@ module.exports = function (proto) {
require("./convenience/morph")(proto);
require("./convenience/sepia")(proto);
require("./convenience/autoOrient")(proto);
require("./convenience/avatar")(proto);
}

@ -0,0 +1,43 @@
var fs = require("fs");
module.exports = function (proto) {
proto.avatar = function avatar (name, callback) {
var self = this;
self.size(function (err, size) {
if (err) {
return callback.apply(self, arguments);
}
self.original = self.source;
self.source = '';
self
.in("-size", size.width + "x" + size.height)
.in("xc:#ffffff00")
.drawCircle(size.width / 2, size.height / 2, size.width / 6, size.height / 6)
.write('mask.png', function(err)
{
if (err) {
return callback.apply(self, arguments);
}
self
.subCommand("composite")
.in('-compose', 'In', self.original, 'mask.png')
.write(name, function(err)
{
fs.unlink("mask.png");
if (err) {
return callback.apply(self, arguments);
}
callback.apply(self, arguments);
});
});
});
return self;
};
};

@ -0,0 +1,27 @@
var assert = require('assert')
module.exports = function (gm, dir, finish, GM) {
if (!GM.integration)
return finish();
gm
.avatar(__dirname + '/fixtures/avatar.png', function(err)
{
if(err)
{
finish(err);
}
else
{
gm.compare(__dirname + '/fixtures/avatar.png', __dirname + '/fixtures/avatar-compare.png',
function (err, isEqual)
{
if (err) return handle(err);
assert(isEqual);
finish();
})
}
});
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Loading…
Cancel
Save