Image drawn at a downscaled resolution if very large.
Canvas 2 – DCT & Post-Processing
Includes DCT, Quantization, Bit Depth Reduction, optional Sobel filter,
3D rotation, horizontal squeeze, and X translation.
Per block: 2D DCT, keep first N coefficients in zig-zag order, JPEG-like quantization,
then 2D IDCT. Optional grayscale, bit-depth reduction (1–8 bits/channel), Sobel filter
(X/Y magnitude control), 3D rotation around X/Y, horizontal squeeze anchored at left or right,
X-axis translation, and download of the processed canvas.
Canvas 3 – Sobel Filter
Shows Sobel edges (or grayscale if Sobel is off). Driven by the Sobel sliders above and
unaffected by 3D rotation / squeeze / translation.
Upload an image, tweak DCT coefficients & quantization, optionally apply a Sobel filter,
view in B/W, rotate the processed pixels in 3D, apply horizontal squeeze, quantize bit depth,
translate in X, resize the output canvas display, download the processed image, and now
export/import DC values with a DC-only canvas.
Keeping 64 / 64 coefficients (100%)
Quantization strength: 1 (no extra quantization)
Bits: 8 (256 levels)
X Magnitude: 1.00×
Y Magnitude: 1.00×
3D Rotation & Translation
X rotation: 0°
Y rotation: 0°
Squeeze: 1.00× from left
Translate X: 0 px
Output width: 100%
Canvas 4 – DC-only Image (per 8×8 block)
Each 8×8 block is filled with its DC (average colour). You can download a DC data file
(including a DC-only PNG) and later upload it to reconstruct this canvas.
Upload DC JSON:
Canvas 5 – Sobel on DC Image
DC values (one per 8×8 block) are resized to the size of Canvas 3, then Sobel is applied using the same X/Y magnitudes.