在之前的博文中,我們向您展示瞭如何實現各種圖像編輯功能,例如調整大小、翻轉 和旋轉 圖像。除了這些功能外,圖像裁剪還廣泛用於修剪圖像中不需要的區域。此外,您還可以裁剪圖像以聚焦框架中的特定對象。在本文中,您將學習如何在 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 的更多信息。此外,您可以通過我們的 論壇 與我們分享您的疑問。