Хеш картинки
Perceptual hash (aHash, pHash, dHash) для поиска визуально похожих изображений без сервера.
Считает три классических perceptual hash для одной картинки или сравнения двух. Perceptual hash, в отличие от MD5/SHA, даёт похожие отпечатки для визуально похожих изображений — даже если они отличаются размером, форматом, степенью сжатия, гаммой или незначительной ретушью. aHash (Average): уменьшаем до 8×8 grayscale, сравниваем каждый пиксель со средним → 64 бита. Быстро, но чувствителен к контрасту. pHash (Perceptual): уменьшаем до 32×32 grayscale, считаем 2D DCT, берём верхний-левый 8×8 блок низких частот (общая форма), исключаем DC-компонент, сравниваем 63+1 значений с медианой → 64 бита. Самый устойчивый к ресайзу и изменению цвета. dHash (Difference): уменьшаем до 9×8 grayscale, сравниваем соседние пиксели в каждой строке → 64 бита. Устойчив к гамма-коррекции. Каждый хеш отображается 16-значной hex-строкой. При загрузке двух картинок инструмент показывает Hamming distance между хешами (число несовпадающих бит из 64): 0 — практически идентичные, ≤6 — почти наверняка одно изображение (ресайз / новое сжатие), 7-15 — похожие сюжетно, ≥16 — разные. Зачем нужно: найти дубликаты в локальной коллекции фото без загрузки в Google Photos / iCloud; проверить, не подсунули ли копию слегка изменённой картинки; быстро понять «это новый кадр или старый из той же серии». Без вендоров, чистый JavaScript. Обработка идёт в браузере, файлы никуда не передаются.