MCPcopy
hub / github.com/jimp-dev/jimp / applyKernel

Function applyKernel

plugins/plugin-color/src/index.ts:61–82  ·  view source on GitHub ↗
(
  image: JimpClass,
  kernel: number[][],
  x: number,
  y: number,
)

Source from the content-addressed store, hash-verified

59type PixelateOptions = z.infer<typeof PixelateOptionsSchema>;
60
61function applyKernel(
62 image: JimpClass,
63 kernel: number[][],
64 x: number,
65 y: number,
66) {
67 const value = [0, 0, 0, 0] as [number, number, number, number];
68 const size = (kernel.length - 1) / 2;
69
70 for (let kx = 0; kx < kernel.length; kx += 1) {
71 for (let ky = 0; ky < kernel[kx]!.length; ky += 1) {
72 const idx = image.getPixelIndex(x + kx - size, y + ky - size);
73
74 value[0] += image.bitmap.data[idx]! * kernel[kx]![ky]!;
75 value[1] += image.bitmap.data[idx + 1]! * kernel[kx]![ky]!;
76 value[2] += image.bitmap.data[idx + 2]! * kernel[kx]![ky]!;
77 value[3] += image.bitmap.data[idx + 3]! * kernel[kx]![ky]!;
78 }
79 }
80
81 return value;
82}
83
84function mix(clr: RGBColor, clr2: RGBColor, p = 50) {
85 return {

Callers 2

pixelateFunction · 0.85
convoluteFunction · 0.85

Calls 1

getPixelIndexMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…