Comprimir imagens em Python

Compactação de imagem é um método comumente usado que reduz o tamanho do arquivo de imagens enquanto preserva sua qualidade visual. Ao remover dados redundantes ou desnecessários, as técnicas de compactação de imagem permitem uploads mais rápidos, requisitos de armazenamento reduzidos e melhor utilização da largura de banda. Ao processar imagens programaticamente, muitas vezes você precisa reduzir seus tamanhos. Portanto, neste artigo, você aprenderá como compactar imagens facilmente em um aplicativo Python.

Biblioteca de Compressão de Imagens Python

Para compactar imagens em Python, usaremos Aspose.Imaging for Python. É uma poderosa biblioteca de processamento de imagens que oferece uma variedade de recursos para processar e manipular imagens de seus aplicativos Python. Você pode baixar a biblioteca ou instalá-la usando o seguinte comando.

> pip install aspose-imaging-python-net 

Comprimir uma imagem em Python

Para compactar uma imagem, você pode definir o valor do nível de compactação de 0 a 9. O valor 9 representa a compactação máxima e 0 é o modo de armazenamento. A seguir estão as etapas para compactar uma imagem PNG em Python.

  • Primeiro, carregue a imagem usando a classe Image.
  • Em seguida, crie um objeto da classe PngOptions.
  • Depois disso, defina o nível de compactação usando a propriedade PngOptions.compressionlevel.
  • Finalmente, salve a imagem compactada usando o método Image.save(String, PngOptions).

O exemplo de código a seguir mostra como compactar uma imagem em 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():
  	# Caminhos de arquivo de entrada e saída
	input_file = os.path.join(templates_folder, "template.png")
	output_file = os.path.join(templates_folder, "compressed_png.png")
  
  	# Carregar imagem
	with Image.load(input_file) as image:
		obj_init = PngOptions()
    
    		# Definir nível de compactação
		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)
    
    		# Salvar imagem compactada
		image.save(output_file, obj_init)

	if delete_output:
		os.remove(output_file)

Para compactar imagens de outros formatos, usaremos a respectiva classe ImageOption. Por exemplo, para compactar imagens JPG, usaremos JpegOptions e para imagens Tiff, usaremos TiffOptions classe.

Obtenha uma biblioteca gratuita de compactação de imagens

Você pode obter uma licença temporária gratuita e compactar imagens em seus aplicativos Python sem nenhuma limitação de avaliação.

Compactar imagens on-line

Também criamos uma ferramenta baseada na web, compressor de imagem gratuito, para compactar imagens online. Você pode usar esta ferramenta para compactar quantas imagens precisar sem criar uma conta.

Conclusão

Este artigo forneceu uma solução eficiente para compactar imagens em Python. Com a ajuda de etapas e amostra de código, você aprendeu como compactar uma imagem sem esforço. Além disso, apresentamos a você uma ferramenta on-line gratuita de compactação de imagens, baseada no Aspose.Imaging para Python. Você pode usar a ferramenta de qualquer lugar sem criar uma conta.

Você pode explorar mais sobre nossa biblioteca de processamento de imagem Python usando documentação. Além disso, você pode compartilhar seus comentários conosco através do nosso fórum.

Veja também