Image Dithering & Retro Pixel Filter

Image Dithering & Retro Pixel Filter: Iterates pixels, quantizes to 0 or 255, and diffuses quantization error to adjacent neighbor pixels (7/16, 3/16, 5/16, 1/16).

About this image dithering & retro pixel filter

Image Dithering & Retro Pixel Filter — browser-based utility.

How this tool works

Implements client-side Image Dithering & Retro Pixel Filter operations. Iterates pixels, quantizes to 0 or 255, and diffuses quantization error to adjacent neighbor pixels (7/16, 3/16, 5/16, 1/16) specifically designed for a retro game designer applies floyd-steinberg error diffusion dithering to an image for an e-ink display.

  1. Binary Segment & EXIF Header Parsing: Identifies JPEG APP1 or PNG chunks, extracting and reporting embedded GPS coordinates and camera metadata.
  2. EXIF Scrubbing Pipeline: Reconstructs clean binary streams omitting metadata segments without lossy re-encoding.
  3. Convolution & Pixelation Matrix: Applies 2D spatial convolution matrices (Gaussian blur, box blur, sharpen) or regional pixelation blocks.
  4. QR Matrix Synthesis: Encodes text or URLs into ISO/IEC 18004 QR code matrix with Reed-Solomon error correction (L, M, Q, H).

Worked example

Scenario: Verify Floyd-Steinberg error diffusion with a fixed 3×2 RGBA image.

Sample input:

3×2 PNG with six pixels having different RGB and alpha values.

Processing: Draw locally on Canvas, then write monochrome RGB using Rec.601 luminance and the four fixed error weights.

Illustrative output:

3×2 PNG; RGB is 0 or 255 and each source alpha byte is retained.

Limits and verification

Scrubbing EXIF metadata is completely lossless because compressed image bitstreams are not re-encoded. Privacy blur and pixelation are destructive pixel operations that permanently overwrite original image data (preventing de-blurring recovery).

Examples demonstrate an expected workflow; they do not prove every input or every branch of an external specification. Check important results with an independent source before using them for money, security, compliance, safety, or irreversible file changes.

Browser processing boundary

Tool input is processed by code running in the browser and is not intentionally sent to a CZOA processing API. The page can still request ordinary site assets, analytics, or advertising when those services are enabled. Browser extensions and managed-device software remain outside this tool's control.

Relevant references

These references govern or help explain the format, protocol, or calculation used here. Listing a reference does not claim certification or complete implementation of every optional feature.

Content owner: CZOA Tools · Last reviewed: 2026-09-15 · Review methodology

How to use it

  1. Enter, paste, or select your input data into the Image Dithering & Retro Pixel Filter workspace controls.
  2. Review available parameter fields, units, formats, or options configured for your task.
  3. Click the action button or observe immediate live calculations rendered in your browser runtime.
  4. Inspect the resulting output and any diagnostic messages, then copy or download the result if needed.

Frequently asked questions

How does Image Dithering process decoded pixels?+

It draws a browser-decodable image to Canvas, computes Rec.601 luminance, scans left to right and top to bottom, and writes each RGB triplet as 0 or 255 by Floyd–Steinberg error diffusion. The source alpha byte is retained.

Which controls and input choices are actually available?+

The page exposes only Choose an image and Process locally. There is no palette selector, Bayer mode, colour-count control, strength slider, resize setting, batch queue, or download-format choice; the result is a PNG data URL.

What algorithm and output limits apply?+

Luminance below 128 becomes black and otherwise white. Error goes only to right, down-left, down and down-right pixels at 7/16, 3/16, 5/16 and 1/16. This is one-bit monochrome RGB, not ordered dithering or indexed-palette conversion.

What did the isolated browser fixture verify?+

A six-locale run processed a 3×2 RGBA PNG against an independently computed Floyd–Steinberg oracle. Every output had expected monochrome RGB bytes and original alpha bytes. Network requests observed during the example contained no image payload; this does not cover page assets, extensions, or storage outside the session.