Сжать изображения в Python

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

Библиотека сжатия изображений Python

Для сжатия изображений в Python мы будем использовать Aspose.Imaging for Python. Это мощная библиотека обработки изображений, предлагающая ряд функций для обработки изображений и управления ими из ваших приложений Python. Вы можете либо скачать библиотеку, либо установить ее с помощью следующей команды.

> pip install aspose-imaging-python-net 

Сжать изображение в Python

Чтобы сжать изображение, вы можете установить значение уровня сжатия от 0 до 9. Значение 9 представляет максимальное сжатие, а 0 — режим сохранения. Ниже приведены шаги для сжатия изображения PNG в Python.

  • Сначала загрузите изображение с помощью класса Image.
  • Затем создайте объект класса PngOptions.
  • После этого установите уровень сжатия с помощью свойства PngOptions.compressionlevel.
  • Наконец, сохраните сжатое изображение с помощью метода Image.save(String, PngOptions).

В следующем примере кода показано, как сжать изображение в Python.

from aspose.imaging.fileformats.png import PngColorType
from aspose.imaging.imageoptions import PngOptions
from aspose.imaging import ColorPaletteHelper, Image
import os


if 'TEMPLATE_DIR' in os.environ:
	templates_folder = os.environ['TEMPLATE_DIR']
else:
	templates_folder = r"C:\Users\USER\Downloads\templates"

delete_output = 'SAVE_OUTPUT' not in os.environ


def compress_png():
  	# Пути входных и выходных файлов
	input_file = os.path.join(templates_folder, "template.png")
	output_file = os.path.join(templates_folder, "compressed_png.png")
  
  	# Загрузить изображение
	with Image.load(input_file) as image:
		obj_init = PngOptions()
    
    		# Установить уровень сжатия
		obj_init.compression_level = 9
		obj_init.progressive = True
		obj_init.color_type = PngColorType.INDEXED_COLOR
		obj_init.palette = ColorPaletteHelper.get_close_image_palette(image, 1 << 5)
    
    		# Сохранить сжатое изображение
		image.save(output_file, obj_init)

	if delete_output:
		os.remove(output_file)

Для сжатия изображений других форматов мы будем использовать соответствующий класс ImageOption. Например, для сжатия изображений JPG мы будем использовать JpegOptions, а для изображений Tiff мы будем использовать TiffOptions .

Получите бесплатную библиотеку сжатия изображений

Вы можете получить бесплатную временную лицензию и сжимать изображения в своих приложениях Python без каких-либо оценочных ограничений.

Сжать изображения онлайн

Мы также создали веб-инструмент бесплатный компрессор изображений для сжатия изображений в Интернете. Вы можете использовать этот инструмент для сжатия любого количества изображений без создания учетной записи.

Заключение

В этой статье вы найдете эффективное решение для сжатия изображений в Python. С помощью шагов и примера кода вы научились легко сжимать изображение. Кроме того, мы представили вам бесплатный онлайн-инструмент для сжатия изображений, основанный на Aspose.Imaging for Python. Вы можете использовать инструмент из любого места без создания учетной записи.

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

Смотрите также