Beskär bilder i Python

Bildbeskärning är en viktig funktion i applikationer för bildredigering och grafikdesign. Det låter dig ändra storlek på bilderna och klippa av deras kanter. När utvecklare bearbetar bilder eller hanterar bildredigering i Python-applikationer kräver utvecklare ofta en enkel bildbeskärningsmekanism. Så i det här blogginlägget kommer vi att lära oss hur man beskära bilder sömlöst i en Python-applikation.

Python-bibliotek för att beskära bilder

För bildbeskärning kommer vi att använda Aspose.Imaging for Python. Det är ett mångsidigt bibliotek som tillhandahåller en rad funktioner för att arbeta med bilder. I synnerhet låter den dig utföra grundläggande såväl som avancerade bildredigeringsuppgifter med lätthet.

Du kan antingen ladda ner biblioteket eller installera det i dina Python-applikationer från PyPI.

> pip install aspose-imaging-python-net 

Beskär en bild i Python

Det finns två sätt att beskära en bild med Aspose.Imaging för Python: att använda skiftvärden och använda en rektangel. I skiftvärdesmetoden anger vi vänster-, höger-, topp- och bottenvärden för bildskift. Å andra sidan använder vi en rektangel för att definiera beskärningsområdet i den andra metoden.

Så låt oss gå igenom var och en av de ovan angivna bildbeskärningsmetoderna med hjälp av Python-kodsnuttar.

Beskär en bild med Shift-värden i Python

Stegen nedan visar hur man beskär en bild med hjälp av skiftvärden i Python.

  • Använd först metoden Image.load() för att ladda bilden som en RasterImage.
  • Cacha sedan bilden för bättre prestanda.
  • Ange skiftvärdena för vänster, höger, topp och botten.
  • Skicka skiftvärdena till metoden RasterImage.crop() och beskära bilden.
  • Slutligen, spara den beskurna bilden med metoden RasterImage.save().

Följande kodavsnitt visar hur man beskär en bild i Python.

import aspose.pycore as aspycore
from aspose.imaging import RasterImage, Image, Rectangle
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
data_dir = templates_folder

# Ladda en befintlig bild i en instans av RasterImage-klassen
with aspycore.as_of(Image.load(os.path.join(data_dir, "template.jpg")), RasterImage) as raster_image:
	# Innan beskärning bör bilden cachelagras för bättre prestanda
	if not raster_image.is_cached:
		raster_image.cache_data()

	# Definiera skiftvärden för alla fyra sidorna
	left_shift = 10
	right_shift = 10
	top_shift = 10
	bottom_shift = 10
  
	# Baserat på skiftvärdena, tillämpa beskärningen på bilden
	raster_image.crop(left_shift, right_shift, top_shift, bottom_shift)
  
  	# Spara beskuren bild
	raster_image.save(os.path.join(data_dir, "result.jpg"))

if delete_output:
	os.remove(os.path.join(data_dir, "result.jpg"))

Nedan är skärmdumparna av ingångsbilden (första) och dess beskurna version (andra).

beskär bilden i Python
bildbeskärning i Python

Bildbeskärning med en rektangel

I den här metoden definierar vi en rektangel för att beskära ett visst område i den laddade bilden. Den resulterande bilden innehåller den del av bilden som kommer inuti den rektangeln. Följande är stegen för att beskära en bild med en rektangel.

Följande kodsnutt visar bildbeskärning med en rektangel i Python.

import aspose.pycore as aspycore
from aspose.imaging import RasterImage, Image, Rectangle
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
data_dir = templates_folder

# Ladda en befintlig bild i en instans av RasterImage-klassen
with aspycore.as_of(Image.load(os.path.join(data_dir, "template.jpg")), RasterImage) as raster_image:
	if not raster_image.is_cached:
		raster_image.cache_data()

	# Skapa en instans av klassen Rectangle med önskad storlek
	rectangle = Rectangle(20, 20, 20, 20)
  
  	# Beskära bild
	raster_image.crop(rectangle)
  
  	# Spara bild
	raster_image.save(os.path.join(data_dir, "result.jpg"))

if delete_output:
	os.remove(os.path.join(data_dir, "result.jpg"))

Skaffa gratis Python-bildbeskärningsbibliotek

Du kan få en gratis tillfällig licens och beskära bilder utan utvärderingsbegränsningar.

Slutsats

Aspose.Imaging för Python ger en robust lösning för bildbeskärning och manipulering. Det här blogginlägget gav dig ett par bildbeskärningsmetoder som du enkelt kan integrera i dina Python-applikationer. Förbättra dina bildbehandlingsmöjligheter med detta kraftfulla Python-bildredigerings-API. Utforska dess fantastiska funktioner genom att besöka dokumentationen och dela dina frågor med oss via vårt forum.

Se även