Обрізати зображення в Python

Обрізання зображень є важливою функцією в програмах для редагування зображень і графічного дизайну. Це дозволяє змінювати розміри зображень і обрізати їхні краї. Під час обробки зображень або роботи з редагуванням зображень у програмах Python розробникам часто потрібен легкий механізм обрізання зображень. Тож у цій публікації блогу ми навчимося безперешкодно обрізати зображення в програмі Python.

Бібліотека Python для кадрування зображень

Для кадрування зображення ми будемо використовувати Aspose.Imaging for Python. Це універсальна бібліотека, яка надає ряд функцій для роботи із зображеннями. Зокрема, це дозволяє з легкістю виконувати як базові, так і розширені завдання редагування зображень.

Ви можете завантажити бібліотеку або встановити її у свої програми Python із PyPI.

> pip install aspose-imaging-python-net 

Обрізання зображення в Python

Існує два способи обрізати зображення за допомогою Aspose.Imaging for Python: за допомогою значень зсуву та за допомогою прямокутника. У методі значень зсуву ми вказуємо ліворуч, праворуч, зверху та знизу значення для зсуву зображення. З іншого боку, ми використовуємо прямокутник для визначення області кадрування в другому методі.

Отже, давайте розглянемо кожен із вищезазначених методів кадрування зображення за допомогою фрагментів коду Python.

Обрізати зображення зі значеннями Shift у Python

Наведені нижче кроки демонструють, як обрізати зображення за допомогою значень зсуву в Python.

  • Спочатку використовуйте метод Image.load(), щоб завантажити зображення як RasterImage.
  • Потім кешуйте зображення для кращої продуктивності.
  • Укажіть значення зсуву ліворуч, праворуч, зверху та знизу.
  • Передайте значення зсуву в метод RasterImage.crop() і обріжте зображення.
  • Нарешті, збережіть обрізане зображення за допомогою методу RasterImage.save().

У наступному фрагменті коду показано, як обрізати зображення в 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

# Завантажте існуюче зображення в екземпляр класу 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()

	# Визначте значення зсуву для всіх чотирьох сторін
	left_shift = 10
	right_shift = 10
	top_shift = 10
	bottom_shift = 10
  
	# Виходячи зі значень зсуву, застосуйте кадрування зображення
	raster_image.crop(left_shift, right_shift, top_shift, bottom_shift)
  
  	# Зберегти обрізане зображення
	raster_image.save(os.path.join(data_dir, "result.jpg"))

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

Нижче наведено скріншоти вхідного зображення (перше) та його обрізану версію (друге).

обрізати зображення в Python
кадрування зображення в Python

Кадрування зображення за допомогою прямокутника

У цьому методі ми визначаємо прямокутник для обрізання певної області завантаженого зображення. Отримане зображення містить частину зображення, яка знаходиться всередині цього прямокутника. Нижче наведено кроки, щоб обрізати зображення за допомогою прямокутника.

  • Спочатку використовуйте метод Image.load(), щоб завантажити зображення як RasterImage.
  • Потім кешуйте зображення.
  • Створіть прямокутник потрібного розміру.
  • Передайте об’єкт Rectangle методу RasterImage.crop() і обріжте зображення.
  • Нарешті, збережіть обрізане зображення за допомогою методу RasterImage.save().

У наступному фрагменті коду показано кадрування зображення за допомогою прямокутника в 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

# Завантажте існуюче зображення в екземпляр класу 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()

	# Створіть екземпляр класу Rectangle потрібного розміру
	rectangle = Rectangle(20, 20, 20, 20)
  
  	# Обрізати зображення
	raster_image.crop(rectangle)
  
  	# Зберегти зображення
	raster_image.save(os.path.join(data_dir, "result.jpg"))

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

Отримайте безкоштовну бібліотеку кадрування зображень Python

Ви можете отримати безкоштовну тимчасову ліцензію і обрізати зображення без обмежень оцінки.

Висновок

Aspose.Imaging for Python надає надійне рішення для кадрування та обробки зображень. Ця публікація блогу надала вам кілька методів кадрування зображень, які ви можете легко інтегрувати у свої програми Python. Розширте свої можливості обробки зображень за допомогою цього потужного API редагування зображень Python. Ознайомтеся з його чудовими функціями, відвідавши документацію, і поділіться своїми запитами з нами через наш форум.

Дивись також