Skip to main content

Upload a photo, receipt, ID or document image to screen it for signs of local editing, re-compression and resampling — with an ELA heatmap, JPEG structure audit, FFT spectrum and noise-floor map.

Forensic Detector — Image Manipulation & Compression Analysis

A privacy-first image forensics engine that screens photos, scanned receipts, IDs and documents for signs of local editing, re-compression and resampling. It runs Error Level Analysis, parses the raw JPEG quantisation tables, measures the 8×8 DCT block grid, computes an FFT spectrum and profiles the sensor-noise floor — entirely in a Web Worker in your browser. The image never leaves your device and no server is ever contacted.

What it measures

  • Error Level Analysis: re-compresses at a fixed quality and maps the per-pixel error. Localised bright or flat patches — clustered and flagged automatically — are where a pasted or re-saved region betrays a different compression history.
  • Quantisation tables (DQT): the raw JPEG header is parsed to estimate the IJG quality, detect non-standard (editor-fingerprint) tables and luma/chroma quality mismatches, and read Exif/Adobe metadata.
  • DCT block grid: the 8×8 blocking lattice is located; a non-zero offset means the file was cropped after JPEG compression, and a competing secondary grid points to double compression or a splice.
  • FFT spectrum: periodic peaks in the frequency domain expose resampling — up-scaling, rotation or warping a region to fit.
  • Noise floor: the sensor-noise residual is tiled and compared; a region carrying a different noise level is a classic splice signature.
  • GenAI signals: spectral periodicity and noise uniformity are reported as advisory indicators — never a verdict — with an optional slot for an offline model.

On honesty and limits

Every technique here has known false positives — high-contrast edges and text raise ELA, legitimate resizing creates spectral peaks, flat regions look low-noise — and all of them can be defeated by re-rasterising the final image (screenshotting or printing-and-scanning wipes the compression history). This tool tells you where to look and lets you corroborate signals; it does not, and cannot, decide that an image is “real” or “fake”. There is deliberately no bundled AI-detection model: no small in-browser model reliably flags modern synthetic imagery on arbitrary documents, so we ship measurable signals instead of an overconfident label.

FAQ

Is my image uploaded anywhere?
No. Decoding, recompression and every analysis run in a Web Worker in your browser. The file never leaves your device and no server, model host or telemetry endpoint is contacted.
Can it prove an image is fake?
No — and be wary of any tool that claims to. It surfaces measurable forensic signals (error levels, quantisation history, block grid, resampling peaks, noise consistency) that point to where and how an image may have been altered. Corroborate across signals and treat the verdict as triage, not evidence.
Why does an unedited photo show ELA hotspots?
ELA is edge- and texture-dependent: sharp edges, text and saturated colours legitimately produce higher error. That is why the tool flags only clustered outliers well above the frame median, and labels the result as suggestive.
What does a misaligned block grid mean?
The 8×8 JPEG grid should sit at offset (0,0). A different offset means the image was cropped or shifted after compression; a strong competing grid suggests it was compressed more than once or contains a spliced region — useful context for a supposed original.
Does it detect AI-generated images?
Only as advisory statistical signals (spectral periodicity, noise uniformity), never as a verdict. You can register your own offline ONNX/TF.js model to add a model-backed score — it still runs locally and uploads nothing.
Which formats work?
JPEG, PNG, WebP, plus TIFF and HEIC/HEIF via in-browser decoders. Quantisation-table and block-grid analysis need a JPEG; ELA, FFT and noise analysis apply to all of them.