matting-editor
Version:
matting-editor
45 lines (31 loc) • 1.2 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
var _loadImageByPixi = require('./load-image-by-pixi');
var _loadImageByPixi2 = _interopRequireDefault(_loadImageByPixi);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = function (url, mask) {
return (0, _loadImageByPixi2.default)(url).then(function (res) {
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('2d');
var _res$data = res.data,
width = _res$data.width,
height = _res$data.height;
if (mask instanceof ArrayBuffer) {
mask = new Uint8Array(mask);
}
canvas.width = width;
canvas.height = height;
ctx.drawImage(res.data, 0, 0, width, height);
var imgData = ctx.getImageData(0, 0, width, height);
var pxArr = imgData.data;
var min = Math.min;
for (var cIdx, i = pxArr.length - 1; i >= 3; i -= 4) {
cIdx = (i + 1) / 4 - 1;
pxArr[i] = min(mask[cIdx], pxArr[i]);
}
ctx.putImageData(imgData, 0, 0);
return canvas;
});
};
;