用 Java 裁剪图像

在之前的博文中,我们已经向您展示了如何实现各种图像编辑功能,例如 resize、flipping 和 rotating 图像。除了这些功能外,图像裁剪还被广泛用于修剪图像中不需要的区域。此外,您可以裁剪图像以专注于框架中的特定对象。在本文中,您将学习如何在 Java 中以编程方式裁剪图像。我们将演示如何使用移位值或矩形裁剪图像。

用于裁剪图像的 Java API - 免费下载

Aspose.Imaging for Java 是一个了不起的图像编辑 API,它提供了广泛的功能来处理图像。此外,它还支持多种光栅和矢量图像格式。我们将使用这个 API 从我们的 Java 应用程序中裁剪图像。您可以 下载 API 或使用以下 Maven 配置安装它。

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository> 

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-imaging</artifactId>
    <version>22.9</version>
</dependency>

用 Java 裁剪图像

裁剪光栅图像有两种方法:移位值和矩形。在第一种方法中,我们需要提供左、右、上和下移位值来裁剪图像。而在第二种方法中,我们定义了一个矩形来裁剪图像的某个区域。

让我们看看上面提到的在 Java 中裁剪图像的每个方法。

在 Java 中使用 Shift 值裁剪图像

以下是在 Java 中使用移位值裁剪图像的步骤。

以下代码示例展示了如何在 Java 中裁剪图像。

// 加载图像。
try (RasterImage rasterImage = (RasterImage) Image.load("image.jpg")) {
	// 在裁剪之前,应该缓存图像以获得更好的性能。
	if (!rasterImage.isCached()) {
		rasterImage.cacheData();
	}

	// 定义所有四个边的移位值。
	int leftShift = 10;
	int rightShift = 10;
	int topShift = 10;
	int bottomShift = 10;

	// 根据移位值,对图像应用裁剪。裁剪方法将发生变化
	// 图像向图像中心边界,并将结果保存到磁盘。
	rasterImage.crop(leftShift, rightShift, topShift, bottomShift);

	// 保存裁剪的图像。
	rasterImage.save("cropped.jpg");
}

以下是我们用于裁剪的输入图像。

用Java裁剪图像

下面是裁剪后的图像。

Java中的图像裁剪

使用矩形的 Java 图像裁剪

您还可以定义一个矩形来裁剪图像的所需区域。以下步骤演示了在 Java 中使用矩形进行图像裁剪。

以下代码示例展示了如何在 Java 中使用矩形执行图像裁剪。

// 加载图像。
try (RasterImage rasterImage = (RasterImage) Image.load("image.jpg")) {
	// 在裁剪之前,应该缓存图像以获得更好的性能。
	if (!rasterImage.isCached()) {
		rasterImage.cacheData();
	}

	// 创建具有所需大小的 Rectangle 类的实例。
	Rectangle rectangle = new Rectangle(20, 20, 20, 20);
	
	// 裁剪图像。
	rasterImage.crop(rectangle);

	// 保存裁剪的图像。
	rasterImage.save("cropped.jpg");
}

用于 Java 的图像裁剪 API - 获取免费许可证

您可以 获得免费的临时许可证 并在没有评估限制的情况下裁剪图像。

结论

在本文中,您学习了如何在 Java 中裁剪图像。我们已经展示了几种使用移位值或矩形裁剪图像的方法。此外,您可以使用 文档 探索有关 Java 图像处理 API 的更多信息。此外,您可以通过我们的 论坛 与我们分享您的疑问。

也可以看看