Image Editor Transformations

Overview


convolution

Manipulating Pixels


Sobel filter convolution


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);	
}
		
					

Contents