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 - pobierz bezpłatnie
- Przycinaj obrazy w Python
- Przytnij obrazy z wartościami przesunięcia
- Kadrowanie obrazu za pomocą prostokąta
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).
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.
- Najpierw użyj metody Image.load(), aby załadować obraz jako RasterImage.
- Następnie buforuj obraz.
- Utwórz Prostokąt o żądanym rozmiarze.
- Przekaż obiekt Rectangle do metody RasterImage.crop() i przytnij obraz.
- Na koniec zapisz przycięty obraz, korzystając z metody RasterImage.save().
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.