ImageFiltering's imfilter on ImageCore's RGB{N0f8} pixels,
compiled from Julia to WasmGC with WasmCodegen. Pick a kernel or type your own weights; every
change re-filters the image in WebAssembly, with the package's own padding, separability test
and color arithmetic.
Images are scaled to at most 512 pixels on a side.
ImageFiltering, ImageCore, ColorTypes, FixedPointNumbers and OffsetArrays from the General registry: 610 Julia functions in 242 KB of WebAssembly, with 358 objects (the presets' tables, the padding styles) serialized into the module.
imfilter factors a 2-D kernel by its singular value decomposition: of rank one,
it filters with two 1-D passes. The SVD is LAPACK's gesdd, from the runtime
WasmCodegen compiles into the module, written in Julia.
On 29 cases (every preset, each border, color and gray), the module's pixels equal native Julia's, or differ by one level where a sum lands on a rounding boundary: the SVD's last bits differ from OpenBLAS's.