'use strict';
exports.__esModule = true;
exports.default = trimCanvas;
/**
* Trim transparent borders from a canvas
*
* @memberof PIXI
* @function trimCanvas
* @private
* @param {HTMLCanvasElement} canvas - the canvas to trim
* @returns {object} Trim data
*/
function trimCanvas(canvas) {
// https://gist.github.com/remy/784508
var width = canvas.width;
var height = canvas.height;
var context = canvas.getContext('2d');
var imageData = context.getImageData(0, 0, width, height);
var pixels = imageData.data;
var len = pixels.length;
var bound = {
top: null,
left: null,
right: null,
bottom: null
};
var i = void 0;
var x = void 0;
var y = void 0;
for (i = 0; i < len; i += 4) {
if (pixels[i + 3] !== 0) {
x = i / 4 % width;
y = ~~(i / 4 / width);
if (bound.top === null) {
bound.top = y;
}
if (bound.left === null) {
bound.left = x;
} else if (x < bound.left) {
bound.left = x;
}
if (bound.right === null) {
bound.right = x + 1;
} else if (bound.right < x) {
bound.right = x + 1;
}
if (bound.bottom === null) {
bound.bottom = y;
} else if (bound.bottom < y) {
bound.bottom = y;
}
}
}
width = bound.right - bound.left;
height = bound.bottom - bound.top + 1;
var data = context.getImageData(bound.left, bound.top, width, height);
return {
height: height,
width: width,
data: data
};
}
//# sourceMappingURL=trimCanvas.js.map