Przycinaj obrazy w Python

Przycinanie obrazu jest istotną funkcją w aplikacjach do edycji obrazów i projektowania grafiki. Umożliwia zmianę rozmiaru obrazów i przycinanie ich krawędzi. Podczas przetwarzania obrazów lub edycji obrazów w aplikacjach Python programiści często wymagają łatwego mechanizmu przycinania obrazów. Dlatego w tym poście na blogu dowiemy się, jak płynnie przycinać obrazy w aplikacji Python.

Biblioteka Python do przycinania obrazów

Do przycinania obrazu użyjemy Aspose.Imaging for Python. Jest to wszechstronna biblioteka zapewniająca szereg funkcji do pracy z obrazami. W szczególności pozwala z łatwością wykonywać podstawowe i zaawansowane zadania edycji obrazu.

Możesz pobrać bibliotekę lub zainstalować ją w swoich aplikacjach Python z PyPI.

> pip install aspose-imaging-python-net 

Przycinanie obrazu w Python

Istnieją dwa sposoby przycięcia obrazu za pomocą Aspose.Imaging for Python: użycie wartości przesunięcia i użycie prostokąta. W metodzie wartości przesunięcia określamy wartości przesunięcia obrazu w lewo, w prawo, u góry i u dołu. Z kolei w drugiej metodzie do określenia obszaru kadrowania używamy prostokąta.

Przyjrzyjmy się więc każdej z wyżej wymienionych metod przycinania obrazu za pomocą fragmentów kodu Python.

Przytnij obraz za pomocą wartości przesunięcia w Python

Poniższe kroki pokazują, jak przyciąć obraz za pomocą wartości przesunięcia w Python.

  • Najpierw użyj metody Image.load(), aby załadować obraz jako RasterImage.
  • Następnie buforuj obraz, aby uzyskać lepszą wydajność.
  • Określ wartości przesunięcia w lewo, w prawo, w górę i w dół.
  • Przekaż wartości przesunięcia do metody RasterImage.crop() i przytnij obraz.
  • Na koniec zapisz przycięty obraz, korzystając z metody RasterImage.save().

Poniższy fragment kodu pokazuje, jak przyciąć obraz w 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

# Załaduj istniejący obraz do instancji klasy RasterImage
with aspycore.as_of(Image.load(os.path.join(data_dir, "template.jpg")), RasterImage) as raster_image:
	# Przed przycięciem obraz powinien zostać zapisany w pamięci podręcznej w celu zapewnienia lepszej wydajności
	if not raster_image.is_cached:
		raster_image.cache_data()

	# Zdefiniuj wartości przesunięcia dla wszystkich czterech stron
	left_shift = 10
	right_shift = 10
	top_shift = 10
	bottom_shift = 10
  
	# W oparciu o wartości przesunięcia zastosuj kadrowanie obrazu
	raster_image.crop(left_shift, right_shift, top_shift, bottom_shift)
  
  	# Zapisz przycięty obraz
	raster_image.save(os.path.join(data_dir, "result.jpg"))

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

Poniżej znajdują się zrzuty ekranu obrazu wejściowego (pierwszy) i jego przyciętej wersji (drugi).

przytnij obraz w Python
kadrowanie obrazu w Python

Kadrowanie obrazu za pomocą prostokąta

W tej metodzie definiujemy prostokąt, aby przyciąć określony obszar załadowanego obrazu. Wynikowy obraz zawiera część obrazu mieszczącą się wewnątrz tego prostokąta. Poniżej przedstawiono kroki przycinania obrazu za pomocą prostokąta.

Poniższy fragment kodu przedstawia przycinanie obrazu za pomocą prostokąta w języku 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

# Załaduj istniejący obraz do instancji klasy RasterImage
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()

	# Utwórz instancję klasy Rectangle o żądanym rozmiarze
	rectangle = Rectangle(20, 20, 20, 20)
  
  	# Przytnij zdjęcie
	raster_image.crop(rectangle)
  
  	# Zapisać obraz
	raster_image.save(os.path.join(data_dir, "result.jpg"))

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

Pobierz bezpłatną bibliotekę przycinania obrazów w języku Python

Możesz [uzyskać bezpłatną licencję tymczasową] i przycinać obrazy bez ograniczeń związanych z oceną.

Wniosek

Aspose.Imaging for Python zapewnia solidne rozwiązanie do przycinania i manipulacji obrazami. W tym poście na blogu przedstawiono kilka metod przycinania obrazów, które można łatwo zintegrować z aplikacjami w języku Python. Zwiększ swoje możliwości przetwarzania obrazu dzięki temu potężnemu interfejsowi API do edycji obrazów w języku Python. Odkryj jego niesamowite funkcje, odwiedzając dokumentację i dziel się z nami swoimi pytaniami za pośrednictwem forum.

Zobacz też