Komprimera bilder i Python

Bildkomprimering är en vanlig metod som minskar filstorleken på bilder samtidigt som deras visuella kvalitet bevaras. Genom att ta bort överflödiga eller onödiga data möjliggör bildkomprimeringstekniker snabbare uppladdningar, minskade lagringskrav och förbättrat bandbreddsutnyttjande. När du bearbetar bilder programmatiskt behöver du ofta minska deras storlekar. Så i den här artikeln kommer du att lära dig hur du enkelt komprimerar bilder i en Python-applikation.

Python bildkomprimeringsbibliotek

För att komprimera bilder i Python kommer vi att använda Aspose.Imaging for Python. Det är ett kraftfullt bildbehandlingsbibliotek som erbjuder en rad funktioner för att bearbeta och manipulera bilder från dina Python-applikationer. Du kan antingen ladda ner biblioteket eller installera det med följande kommando.

> pip install aspose-imaging-python-net 

Komprimera en bild i Python

För att komprimera en bild kan du ställa in värdet på komprimeringsnivån från 0 till 9. Värdet 9 representerar den maximala komprimeringen och 0 är lagringsläget. Följande är stegen för att komprimera en PNG-bild i Python.

  • Ladda först in bilden med bildklassen.
  • Skapa sedan ett objekt av klassen PngOptions.
  • Efter det ställer du in komprimeringsnivån med PngOptions.compressionlevel-egenskapen.
  • Slutligen sparar du den komprimerade bilden med metoden Image.save(String, PngOptions).

Följande kodexempel visar hur man komprimerar en bild i 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():
  	# In- och utdatafilsökvägar
	input_file = os.path.join(templates_folder, "template.png")
	output_file = os.path.join(templates_folder, "compressed_png.png")
  
  	# Ladda bilden
	with Image.load(input_file) as image:
		obj_init = PngOptions()
    
    		# Ställ in kompressionsnivå
		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)
    
    		# Spara komprimerad bild
		image.save(output_file, obj_init)

	if delete_output:
		os.remove(output_file)

För att komprimera bilder i andra format använder vi respektive klass ImageOption. Till exempel, för att komprimera JPG-bilder kommer vi att använda JpegOptions och för Tiff-bilder kommer vi att använda [TiffOptions] ](https://reference.aspose.com/imaging/python-net/aspose.imaging.imageoptions/tiffoptions/) klass.

Skaffa gratis bildkomprimeringsbibliotek

Du kan få en gratis tillfällig licens och komprimera bilder i dina Python-applikationer utan några utvärderingsbegränsningar.

Komprimera bilder online

Vi har också skapat ett webbaserat verktyg, gratis bildkomprimering, för att komprimera bilder online. Du kan använda det här verktyget för att komprimera så många bilder du behöver utan att skapa ett konto.

Slutsats

Den här artikeln gav dig en effektiv lösning för att komprimera bilder i Python. Med hjälp av steg och kodexempel har du lärt dig hur du enkelt komprimerar en bild. Dessutom har vi introducerat dig för ett gratis online bildkomprimeringsverktyg, som är baserat på Aspose.Imaging för Python. Du kan använda verktyget var som helst utan att skapa ett konto.

Du kan utforska mer om vårt Python-bildbehandlingsbibliotek med dokumentation. Du kan också dela din feedback med oss via vårt forum.

Se även