2012-06-27 2 views
2

Я пишу скрипт Python, который обращается к изображениям. Есть ли модуль, который может сжимать изображение без, помещая его в архив и распаковывая его обратно? (например, изображение 1 МБ теперь составляет 0,8 МБ после сжатия, затем 1 МБ после декомпрессии).Сжатие изображений в Python (без архива)

Могу ли я увидеть пример кода сжатия и декомпрессии изображения на Python без использования архивов?

Я уже рассмотрел некоторые модули, но они сжимают строки.

ответ

5

Современные графические форматы, такие как PNG и JPEG, уже сжаты, и моя общая рекомендация берет совет Брендана Лонга и использует эти форматы и использует всю работу, которая была им установлена.

Тем не менее, если вы хотите сжать содержимое любого произвольного файла в Python, здесь очень простой пример:

import zlib 

with open("MyImage.jpg", "rb") as in_file: 
    compressed = zlib.compress(in_file.read(), 9) 

with open("MyCompressedFile", "wb") as out_file: 
    out_file.write(compressed) 
+0

Отличная помощь - простой пример все, что мне нужно. Спасибо, спасибо. – Eric

7

Возможно, вы захотите ознакомиться с форматами Python Image Library (PIL) и PNG и JPEG.

Метод PIL Image.save() позволит вам сохранять изображения в формате PNG или JPEG.

PNG - Без потерь, подходит для изображений «cartoony»/логотипов с целыми цветами или небольшим количеством цветов.

JPEG - Lossy, подходит для фотографий, изображений с партиями "происходит".

 Смежные вопросы

  • Нет связанных вопросов^_^