Image workflow
Local images: pixel differences, cropping and export limits
Keep the source image. Local processing avoids uploads but does not make browser decoding, colors or compression identical across devices.
Content updated: · Maintainer and corrections
Check native image orientation
The displayed bitmap, crop coordinates and exported pixels follow native decoding with imageOrientation from-image. JPEG Exif plus a separate XMP APP1 is supported; duplicate Exif APP1 segments are rejected rather than guessing which orientation wins.
PNG eXIf and WebP EXIF can affect decoded orientation. Browsers may apply WebP orientation differently, so inspect the actual preview before cropping or comparing. Only the exact original dimension pair or its swap is accepted after decoding; all byte, side and pixel limits still apply.
Compare the same coordinate system
The difference tool requires equal decoded width and height for pixel counts. Different dimensions receive proportional side-by-side previews only: scaling, alignment and cropping can change the very difference you are measuring.
A pixel changes when any decoded RGBA channel differs by more than the selected integer threshold. This includes alpha and transparent-pixel channels. Browser color conversion and premultiplication can affect decoded values. Zero changed pixels is not a file hash, metadata comparison or perceptual quality verdict.
Crop and encode deliberately
Crop coordinates use the oriented decoded image. Keep the rectangle inside its bounds and choose output dimensions explicitly. Ratio controls adjust the paired dimension when you edit; they do not silently clip an invalid crop. The composition preview does not predict lossy compression artifacts.
JPEG has no alpha, so provide an opaque background before exporting. Native Canvas encoders may not support every MIME type: the tool checks the returned Blob type and rejects silent PNG fallback. Quality, resampling, color profiles and 96-dpi export metadata are browser-controlled. Animation and source metadata are not preserved.
Read limits and palette estimates
Only static PNG, 8-bit baseline/extended sequential/progressive JPEG and WebP are accepted, up to 20 MiB, 8192 px per side and 16 million pixels; pixel comparison is limited to 4 million per image. PNG checksums and bounded containers are checked before decoding. APNG, animated WebP and unsupported or truncated containers are rejected. Compressed data may still fail the native decoder; a passing preflight is not proof every bit is valid.
Palette extraction samples to a 256-px maximum side and uses a deterministic 5-bit RGB histogram, alpha-weighted averages and shares. Fully transparent pixels are excluded. Selected colors may cover less than 100% and fewer colors are not padded. It is a practical approximation, not a scientific summary or WCAG test. Inputs remain in memory and are cleared on navigation; inspect downloaded images before sharing.
Data provenance