trim the padding of an image based on sum of pixel conditioning of each border's rows and columns.
Note
the output will always consist of at least 1-pixel width or 1-pixel height.
Example
for example, to trim the whitespace border pixels of an "RGBA" image, irrespective of the alpha,
and a minimum requirement of at least three non-near-white pixels in each border row and column,
you would design your padding_condition as such:
import { assertEquals } from"jsr:@std/assert"
// we want the distance between a pixel's rgb color and the white color (i.e. `(255, 255, 255,)`) // to be less than `10 * Math.sqrt(3)`, in order for it to be considered near-white. constmy_white_padding_condition = (r: number, g: number, b: number, a: number) => { constdistance_from_white = (3 * 255**2) - (r**2 + g**2 + b**2) returndistance_from_white < (3 * 5**2) ? 0.0 : 1.0 }
const width = 60, img_data = newImageData(newUint8ClampedArray(4 * width * 30).fill(255), width), // fully white rgba image trimmed_img_data = trimImagePadding(img_data, my_white_padding_condition, 3.0) // only a 1x1 white pixel remains
trim the padding of an image based on sum of pixel conditioning of each border's rows and columns.
the output will always consist of at least 1-pixel width or 1-pixel height.
Example
for example, to trim the whitespace border pixels of an "RGBA" image, irrespective of the alpha, and a minimum requirement of at least three non-near-white pixels in each border row and column, you would design your
padding_condition
as such: