Я ищу способ создать уникальный хеш для изображений в python и php.
Я думал об использовании сумм md5 для исходного файла, потому что они могут быть сгенерированы быстро, но когда я обновляю информацию EXIF (иногда часовой пояс выключен), он меняет сумму и изменения хэша.
Есть ли другие способы создать хэш для этих файлов, которые не будут меняться при обновлении информации EXIF? Эффективность вызывает беспокойство, поскольку я буду создавать хэши для ~ 500k 30MB изображений.
Возможно, есть способ создать хеш-файл md5, исключая часть EXIF (я считаю, что она написана в начале файла?) Спасибо заранее. Пример кода оценивается.
В Python вы можете использовать Image.tostring () для вычисления хеша md5 только для данных изображения без метаданных.
import Image import hashlib img = Image.open(filename).convert('RGBA') m=hashlib.md5() m.update(img.tostring()) print(m.hexdigest())
Imagemagick уже предоставляет метод для получения подписи изображения. Согласно документации PHP :
Создает дайджест сообщения SHA-256 для потока пикселов изображения.
Поэтому я понимаю, что на изменения подписи не влияют изменения в информации exif.
Кроме того, я проверил, что метод PythonMagick.Image.signature
доступен в привязках python, поэтому вы должны иметь возможность использовать его на обоих языках.