Share Brilliantly
davinci apps
async function(context,img){
let ig = await import('/lib/image/v1.0.0/image.mjs');
let la = await import('/lib/linear-algebra/v1.0.0/linear-algebra.mjs');
let filter = [[1,0,-1],[2,0,-2],[1,0,-1]];
let imgData = context.getImageData(img.imageX, img.imageY, img.imageWidth, img.imageHeight);
let data = imgData.data;
let matrices = ig.matrices(data,img.imageWidth);
let nred = la.pad(la.convolve(matrices.red, filter));
let ngreen = la.pad(la.convolve(matrices.red, filter));
let nblue = la.pad(la.convolve(matrices.red, filter));
let flat = ig.flatten(nred, ngreen, nblue, matrices.alpha)
//let nImage = img.flatten();
//return;
let image2 = context.createImageData(imgData);
let data2 = image2.data;
for (let i = 0, n = data.length; i < n; i += 4) {
let red = flat[i];
let green = flat[i + 1];
let blue = flat[i + 2];
let alpha = flat[i + 3];
//set the new values here
data2[i] = Math.max(red,0);
data2[i + 1] = Math.max(green,0);
data2[i + 2] = Math.max(blue,0);
data2[i + 3] = alpha;
}
context.putImageData(image2, img.imageX, img.imageY);
}