md5 из объекта pil

как я могу получить md5 объекта pil без сохранения файла?

imq.save('out.png') hash = hashlib.md5(open('out.png','rb').read()).hexdigest() 

4 Solutions collect form web for “md5 из объекта pil”

На самом деле существует более простое решение:

 hashlib.md5(img.tostring()).hexdigest() 

StringIO этого вы можете записать его в StringIO , а затем взять хэш этого.

Повернув ответ @ Ignacio в код, используя этот ответ, чтобы помочь:

 import StringIO, hashlib output = StringIO.StringIO() img.save(output) hash = hashlib.md5(output.getvalue()).hexdigest() 

Как указано в других заметках ответа, это может привести к KeyError, если PIL попытается автоматически определить выходной формат. Чтобы избежать этой проблемы, вы можете указать формат вручную:

 img.save(output, format='GIF') 

(Примечание: я использовал «img» в качестве переменной, а не ваш «imq», который, как я предполагал, был опечаткой).

Вы можете использовать следующий метод класса PIL Image чтобы получить необработанные данные изображения для подачи на md5() .

последовательность im.getdata () =>

Возвращает содержимое изображения в виде объекта последовательности, содержащего значения пикселей. Объект последовательности сглаживается, так что значения для строки 1 следуют сразу после значений нулевой линии и т. Д.

Обратите внимание, что результирующий MD5-хэш использования этого не будет таким же, как ваш примерный код, потому что он (по крайней мере частично) не зависит от конкретного формата файла изображения, используемого для сохранения изображения. Это может быть полезно, если вы хотите сравнить фактические изображения независимо от конкретного формата файла изображения, в котором они могут быть сохранены.

Чтобы использовать его, вам нужно будет хранить хеш MD5 данных изображения где-то независимо от любого файла изображения, где он может быть извлечен, когда это необходимо, – в отличие от его создания, считывая весь файл в память как двоичные данные, такие как код в вашем вопрос. Вместо этого вам нужно всегда загружать изображение в PIL, а затем использовать метод getdata() для вычисления хэшей.

  • Python Imaging: проблемы с YCbCr
  • как вытеснить образ в python?
  • Python получает матрицу изображений PIL
  • Как изменить размер изображения с помощью PIL и сохранить его соотношение сторон?
  • Преобразование экземпляра изображения (файла) в массив (python)
  • Рисование прямоугольника с использованием событий мыши в Tkinter
  • python: конвертировать из PNG в JPG без сохранения файла на диск с использованием PIL
  • ImportError: нет модуля с именем PIL
  •  
    Interesting Posts for Van-Lav

    Python Преобразование температуры MVC: почему я получаю «TypeError: buttonPressed () отсутствует 1 обязательный позиционный аргумент:« self »

    Python: возможно ли создать метку tkinter, которая имеет динамическую строку, когда функция работает в фоновом режиме?

    Tornado WebSockets – InvalidStateError «Все еще в состоянии CONNECTING»

    Как я могу использовать PCA / SVD в Python для выбора и идентификации функции?

    Найдите пакет MacPorts?

    Python: инструкция exec и непредвиденное поведение сборщика мусора

    Как сделать unindent с помощью IDLE (Python gui)

    Ошибка установки MySQLdb – _mysql.c: 44: 23: error: my_config.h: Нет такого файла или каталога

    Трассировка выполнения программной строки / оператора Python по линии программно

    Перестановка списка слов на Python

    Удалить символ 'b' перед строковым литералом в Python 3

    Создать таблицу в подзаголовке

    Python: импорт файла из родительской папки

    PyYAML и необычные теги

    Учитывая список фрагментов, как мне разделить их на них?

    Python - лучший язык программирования в мире.