MCPcopy
hub / github.com/ericdrowell/KineticJS / erodeMask

Function erodeMask

kinetic.js:4760–4792  ·  view source on GitHub ↗
(mask, sw, sh)

Source from the content-addressed store, hash-verified

4758 }
4759
4760 function erodeMask(mask, sw, sh) {
4761
4762 var weights = [1, 1, 1, 1, 0, 1, 1, 1, 1];
4763 var side = Math.round(Math.sqrt(weights.length));
4764 var halfSide = Math.floor(side / 2);
4765
4766 var maskResult = [];
4767 for (var y = 0; y < sh; y++) {
4768 for (var x = 0; x < sw; x++) {
4769
4770 var so = y * sw + x;
4771 var a = 0;
4772 for (var cy = 0; cy < side; cy++) {
4773 for (var cx = 0; cx < side; cx++) {
4774 var scy = y + cy - halfSide;
4775 var scx = x + cx - halfSide;
4776
4777 if (scy >= 0 && scy < sh && scx >= 0 && scx < sw) {
4778
4779 var srcOff = scy * sw + scx;
4780 var wt = weights[cy * side + cx];
4781
4782 a += mask[srcOff] * wt;
4783 }
4784 }
4785 }
4786
4787 maskResult[so] = (a === 255 * 8) ? 255 : 0;
4788 }
4789 }
4790
4791 return maskResult;
4792 }
4793
4794 function dilateMask(mask, sw, sh) {
4795

Callers 1

kinetic.jsFile · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected