Browse Source

removed rounding of values in composeSMaskLuminosity

maskData comes out of maskCtx.getImageData, so is 0..255 clamped, and
the used multiplications will not create fractions needing rounding,
neither would addition.
Fabian Lange 11 years ago
parent
commit
b049119d14
  1. 6
      src/display/canvas.js

6
src/display/canvas.js

@ -639,9 +639,9 @@ var CanvasGraphics = (function CanvasGraphicsClosure() {
function composeSMaskLuminosity(maskData, layerData) { function composeSMaskLuminosity(maskData, layerData) {
var length = maskData.length; var length = maskData.length;
for (var i = 3; i < length; i += 4) { for (var i = 3; i < length; i += 4) {
var y = ((maskData[i - 3] * 77) + // * 0.3 / 255 * 0x10000 var y = (maskData[i - 3] * 77) + // * 0.3 / 255 * 0x10000
(maskData[i - 2] * 152) + // * 0.59 .... (maskData[i - 2] * 152) + // * 0.59 ....
(maskData[i - 1] * 28)) | 0; // * 0.11 .... (maskData[i - 1] * 28); // * 0.11 ....
layerData[i] = (layerData[i] * y) >> 16; layerData[i] = (layerData[i] * y) >> 16;
} }
} }

Loading…
Cancel
Save