yeah overmasking is _definitely_ fixed, works great now

This commit is contained in:
tim h 2022-11-20 17:21:55 -06:00
parent 959bb4f8b1
commit 32904051aa

View file

@ -646,34 +646,36 @@ function mouseUp(evt) {
initImgData.data[i + 3] = imgChunkData[i + 3]; //it's still RGBA so we can handily do this in nice chunks'o'4 initImgData.data[i + 3] = imgChunkData[i + 3]; //it's still RGBA so we can handily do this in nice chunks'o'4
} }
} }
// https://stackoverflow.com/a/30204783 ???? !!!!!!!! if (overMaskPx > 0) {
overMaskCanvasCtx.fillStyle = "black"; // https://stackoverflow.com/a/30204783 ???? !!!!!!!!
overMaskCanvasCtx.fillRect(0, 0, drawIt.w, drawIt.h); // fill with black instead of null to start overMaskCanvasCtx.fillStyle = "black";
for (i = 0; i < overMaskImgData.data.length; i += 4) { overMaskCanvasCtx.fillRect(0, 0, drawIt.w, drawIt.h); // fill with black instead of null to start
if (overMaskImgData.data[i] == 255) { for (i = 0; i < overMaskImgData.data.length; i += 4) {
// white pixel? if (overMaskImgData.data[i] == 255) {
// just blotch all over the thing // white pixel?
var rando = Math.floor(Math.random() * overMaskPx); // just blotch all over the thing
overMaskCanvasCtx.beginPath(); var rando = Math.floor(Math.random() * overMaskPx);
overMaskCanvasCtx.arc( overMaskCanvasCtx.beginPath();
(i / 4) % overMaskCanvas.width, overMaskCanvasCtx.arc(
Math.floor(i / 4 / overMaskCanvas.width), (i / 4) % overMaskCanvas.width,
4 * scaleFactor + rando, Math.floor(i / 4 / overMaskCanvas.width),
0, scaleFactor + rando, // was 4 * sf + rando, too big
2 * Math.PI, 0,
true 2 * Math.PI,
); true
overMaskCanvasCtx.fillStyle = "#FFFFFFFF"; );
overMaskCanvasCtx.fill(); overMaskCanvasCtx.fillStyle = "#FFFFFFFF";
overMaskCanvasCtx.fill();
}
} }
overMaskImgData = overMaskCanvasCtx.getImageData(
0,
0,
overMaskCanvas.width,
overMaskCanvas.height
);
overMaskCanvasCtx.putImageData(overMaskImgData, 0, 0);
} }
overMaskImgData = overMaskCanvasCtx.getImageData(
0,
0,
overMaskCanvas.width,
overMaskCanvas.height
);
overMaskCanvasCtx.putImageData(overMaskImgData, 0, 0);
// also check for painted masks in region, add them as white pixels to mask canvas // also check for painted masks in region, add them as white pixels to mask canvas
const maskChunk = maskPaintCtx.getImageData( const maskChunk = maskPaintCtx.getImageData(
drawIt.x, drawIt.x,