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

Обрезка изображений является важной функцией в приложениях для редактирования изображений и графического дизайна. Он позволяет изменять размер изображений и обрезать их края. При обработке изображений или редактировании изображений в приложениях Python разработчикам часто требуется простой механизм обрезки изображений. Итак, в этом сообщении блога мы узнаем, как легко обрезать изображения в приложении Python.

Библиотека Python для обрезки изображений

Для обрезки изображения мы будем использовать Aspose.Imaging for Python. Это универсальная библиотека, предоставляющая ряд функций для работы с изображениями. В частности, он позволяет с легкостью выполнять как базовые, так и сложные задачи редактирования изображений.

Вы можете либо скачать библиотеку, либо установить ее в свои приложения Python из PyPI.

> pip install aspose-imaging-python-net 

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

Есть два способа обрезать изображение с помощью Aspose.Imaging for Python: используя значения сдвига и используя прямоугольник. В методе значений сдвига мы указываем левые, правые, верхние и нижние значения для сдвига изображения. С другой стороны, мы используем прямоугольник для определения области обрезки во втором методе.

Итак, давайте рассмотрим каждый из вышеперечисленных методов обрезки изображения с помощью фрагментов кода Python.

Обрезать изображение со значениями сдвига в 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. Изучите его удивительные возможности, посетив документацию и поделитесь своими вопросами с нами через наш форум.

Смотрите также