UNPKG

matting-editor

Version:

matting-editor

45 lines (31 loc) 1.2 kB
'use strict'; 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; }); };