在 Python 中裁剪图像

图像裁剪是图像编辑和图形设计应用程序中的一项重要功能。它可以让您调整图像大小并修剪其边缘。在 Python 应用程序中处理图像或处理图像编辑时,开发人员通常需要一种轻松的图像裁剪机制。因此,在这篇博文中,我们将学习如何在 Python 应用程序中无缝裁剪图像。

用于裁剪图像的 Python 库

对于图像裁剪,我们将使用 Aspose.Imaging for Python。它是一个多功能库,提供了一系列用于处理图像的功能。特别是,它可以让您轻松执行基本和高级图像编辑任务。

您可以下载该库或从 PyPI 将其安装到您的 Python 应用程序中。

> pip install aspose-imaging-python-net 

在 Python 中裁剪图像

使用 Aspose.Imaging for Python 裁剪图像有两种方法:使用移位值和使用矩形。在移位值方法中,我们指定图像移位的左、右、上、下值。另一方面,我们在第二种方法中使用矩形来定义裁剪区域。

因此,让我们借助 Python 代码片段来了解上述每种图像裁剪方法。

在 Python 中使用平移值裁剪图像

以下步骤演示了如何在 Python 中使用移位值裁剪图像。

以下代码片段展示了如何在 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 中的图像裁剪

用矩形裁剪图像

在此方法中,我们定义一个矩形来裁剪加载图像中的特定区域。生成的图像包含位于该矩形内的图像部分。以下是使用矩形裁剪图像的步骤。

以下代码片段显示了在 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 应用程序中。使用这个强大的 Python 图像编辑 API 增强您的图像处理能力。访问文档探索其惊人的功能,并通过我们的论坛与我们分享您的疑问。

也可以看看