在之前的博文中,我们已经向您展示了如何实现各种图像编辑功能,例如 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 中使用移位值裁剪图像的步骤。
- 首先,使用 Image.load() 方法将图像加载到 RasterImage 对象中。
- 如果不是,请缓存图像。
- 定义左移、右移、上移和下移值。
- 使用 RasterImage.crop() 方法裁剪图像。
- 使用 RasterImage.save() 方法保存裁剪的图像。
以下代码示例展示了如何在 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 中使用矩形进行图像裁剪。
- 首先,使用 Image.load() 方法将图像加载到 RasterImage 对象中。
- 如果不是,请缓存图像。
- 创建一个 Rectangle 对象并将其初始化为所需的大小。
- 使用 RasterImage.crop() 方法裁剪图像。
- 使用 RasterImage.save() 方法保存裁剪的图像。
以下代码示例展示了如何在 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 的更多信息。此外,您可以通过我们的 论坛 与我们分享您的疑问。