Качество JPEG
Оценка качества JPEG из quantization tables (0-100) + детектор повторного пересохранения через ELA.
Оценивает эффективное качество сжатия JPEG из quantization tables и эвристически детектирует повторное пересохранение. Парсит JPEG-сегменты, находит DQT (Define Quantization Table) маркеры, сравнивает квантизаторы с эталонными таблицами стандарта ISO/IEC 10918-1 Annex K и считает quality factor по обратной IJG-формуле (та же шкала 0-100, что у libjpeg, MozJPEG, Photoshop): для luma и chroma отдельно, потом среднее. Дополнительно из SOF0/SOF2 достаёт subsampling (4:4:4 / 4:2:2 / 4:2:0 / 4:4:0), baseline-или-progressive режим, размеры. Детектор пересохранения: перекодирует входное изображение в JPEG с тем же качеством, что мы определили, считает средний абсолютный контраст разности оригинала и перекодированной копии. Низкое значение (<3) → исходник «свежий» с этого качества (одно сохранение); среднее (3-7) → возможно одно пересохранение с другим уровнем сжатия; высокое (>7) → явные следы нескольких сжатий (вероятно ретушь и пересохранение). Зачем нужно: журналистам — проверить, не выдан ли «оригинал» за результат нескольких пересохранений; дизайнерам — оценить, насколько агрессивно сжата прилетевшая картинка прежде чем класть в продакт; фотографам — убедиться, что бэкап из мессенджера не «убит» качеством меньше 70. Без вендоров, чистый JavaScript. Обработка идёт в браузере, файл никуда не передаётся.