Python

Сжать изображение PNG в Python с помощью PIL

Сжатие изображений для ускорения обработки и анализа изображений в настоящее время очень распространено. Его популярность можно объяснить уменьшением нерелевантности и избыточности данных изображения. Чтобы передавать данные в эффективной форме и уменьшить количество битов, необходимых для рендеринга изображения.

Оптимизация хранения может быть достигнута за счет сжатия файлов изображений. Эффективная передача файлов с более низкой пропускной способностью сети также является причиной того, что сжатие изображений является необходимостью часа.

Скорость, с которой технологический прогресс происходит сегодня во всем мире, требует повышения скорости загрузки изображений для официальных целей, когда разрешение не так важно, как доказательство документа.

Используя библиотеку Pillow в Python, мы можем сжимать изображения в любом формате, таком как JPG, PNG и т. д.

Для сжатия изображений в Python используйте библиотеку Pillow. Установите его с помощью pip install pillow, затем создайте функцию для изменения размера и сохранения изображения с оптимизированным качеством. Вызовите эту функцию с файлом изображения, чтобы получить сжатую версию, позволяющую оптимизировать хранение и ускорить передачу при сохранении качества изображения.

Использование Pillow для сжатия изображений в Python

В Python множество библиотек содержат предопределенные функции для различных целей. Pillow (PIL) — популярная библиотека Python для сжатия изображений. Используя Pillow, мы можем легко сжимать и уменьшать размер изображений.

На веб-сайтах, которые требуют загрузки тонн изображений от сотен и сотен пользователей, сжатие изображений становится необходимостью, а не просто желанием.

Pillow — это бесплатная библиотека Python с открытым исходным кодом, используемая для обработки изображений, управления ими, сохранения и открытия файлов в различных форматах, таких как PNG, JPG и т. д. Это один из наиболее эффективных методов, которые можно использовать для более быстрого доступа к данным пикселей. изображения. Он был разработан Джеффри Кларком и поддерживается прилив. Чтобы узнать больше о подушке, кликните сюда.

Преимущества и недостатки сжатия изображений

В python есть много преимуществ и недостатков сжатия изображений. Некоторые из них:

Преимущества:

  • Делает изображение более переносимым.
  • Для увеличения скорости передачи файлов, например загрузки или скачивания изображений в Интернет и из Интернета.
  • Уменьшенные размеры изображений потребляют меньше пропускной способности.
  • Уменьшение изображения без потерь сохранит почти то же качество и внешний вид изображения, удаляя нерелевантные пиксельные данные, чтобы ускорить обработку изображения.
  • На веб-сайтах, которым требуются большие объемы графических данных от миллионов пользователей, сжатие помогает оптимизировать скорость и использование памяти.
  • Сжатыми изображениями можно легко обмениваться по электронной почте и на сайтах социальных сетей быстрее.

Недостатки:

  • Приводит к снижению качества изображения.
  • может привести к потере важных данных пикселей.
  • Иногда может не поддерживать наложение изображений.

Предложенный: Модуль Python Pillow — краткое введение.

Сжатие изображений с помощью Python и PIL (код)

В этом разделе руководства мы рассмотрим код для реализации библиотеки подушек для сжатия изображения в Python.

Мы начнем с импорта необходимых модулей, которые должны быть установлены в вашей системе, прежде чем продолжить. Если у вас их еще нет, запустите в командной строке следующее.

Изображение, которое я буду использовать, приведено ниже. Вы можете скачать его или использовать любое изображение в формате .PNG.

Образец изображения
Образец изображения

Если вы нажмете на свойства вашего изображения, вы увидите размер изображения до сжатия. Исходный размер моего изображения составляет 0,99 МБ (1017,24 килобайта), что указано ниже:

Исходные свойства изображения
Свойства исходного образца изображения

Теперь давайте посмотрим на код, чтобы уменьшить его размер:

# importing the required modules
import os
from PIL import Image

# Function to compress the image
def compressimages(image_file):
    # accessing the image file
    filepath = os.path.join(os.getcwd(), image_file)
    # maximum pixel size
    maxwidth = 1200
    # opening the file
    image = Image.open(filepath)
    # Calculating the width and height of the original photo
    width, height = image.size
    # calculating the aspect ratio of the image
    aspectratio = width / height

    # Calculating the new height of the compressed image
    newheight = maxwidth / aspectratio

    # Resizing the original image
    image = image.resize((maxwidth, round(newheight)))

    # Saving the image
    filename = "Compressed.PNG"
    image.save(filename, optimize=True, quality=85)
    return


# driver code
image_file = "path_of_samplephoto.png"
# calling the function
compressimages(image_file)
print(
    "The given image has been compressed, download the files to notice the difference in file size."
)

Вывод будет включать вновь созданное изображение с именем «Compressed.PNG» в каталоге, где хранится исходное изображение. Но это новое изображение будет меньше по размеру. Давайте посмотрим на размеры нового изображения.

Свойства сжатого изображения
Свойства сжатого изображения

Размер изображения, то есть разрешение, теперь уменьшился до 986 ​​КБ с 0,99 МБ, следовательно, сжатие прошло успешно. Сжатое изображение должно быть в порядке, потому что оно должно быть «без потерь» с точки зрения качества изображения. Давайте посмотрим на сжатое изображение.

Сжатый 1
Сжатое изображение.

Изображение, хотя и меньшего размера, сохраняет почти исходное качество и не выглядит грязным! Вот как вы сжимаете изображение в python, используя PIL.

Заключение

В этой статье мы узнали, как сжимать изображения в Python, используя одну из библиотек обработки изображений с открытым исходным кодом под названием Pillow.

PIL или подушка — один из самых мощных модулей для работы с изображениями в Python. Чаще всего он используется для уменьшения размера изображения, явного или неявного преобразования изображения из одного формата в другой, сохранения изображений, сжатия изображений и многого другого.

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


Ссылка на источник

Похожие статьи

Кнопка «Наверх»