A clear answer. Here’s how.
Applies 3 × 3 Sobel x/y kernels to weighted RGB luma, clamping border sample coordinates to the image edge. Greyscale output is min(255, magnitude × strength/4), rounded to a byte. Ignores source alpha and exports opaque PNG. Detects local gradients rather than semantic boundaries or a vector tracing. Supports PNG/JPEG/WebP up to 10 MB and 4 million decoded pixels per file. Browser decoding and single-frame PNG re-encoding remove source metadata/colour profiles; no files leave this device.