每天,我们通过数码相机、扫描仪等生成大量图像,其中大部分为 JPG、PNG、GIF、TIFF等。现在我们可能正在捕捉图片中不必要的对象/元素。因此,我们经常需要裁剪照片以从图像中删除不需要的主题或不相关的细节。我们可能需要更改图像的纵横比或改善图像的整体构图。因此,在本文中,我们将详细了解如何使用 Java Cloud SDK 裁剪图像。
图像裁剪 API
为了在 Java 应用程序中裁剪照片,我们将使用 Aspose.Imaging Cloud SDK for Java。 API 使您能够指定裁剪矩形的位置和尺寸。裁剪图像操作完成后,我们可以以相同格式保存输出图像,或者利用不同格式保存裁剪图像。请访问以下链接以获取 支持的格式 的列表。现在为了开始,第一步是通过在 pom.xml(maven 构建类型项目)中包含以下信息来在 java 项目中添加它的引用。
<repositories>
<repository>
<id>aspose-cloud</id>
<name>artifact.aspose-cloud-releases</name>
<url>http://artifact.aspose.cloud/repo</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-imaging-cloud</artifactId>
<version>22.4</version>
</dependency>
</dependencies>
项目设置完成后,我们需要从 Cloud Dashboard 获取客户端凭据。现在,如果您没有 Aspose Cloud Dashboard 的帐户,请通过有效的电子邮件地址创建一个免费帐户。现在使用新创建的帐户登录并在 Aspose Cloud Dashboard 中查找/创建客户端 ID 和客户端密码。
使用 Java 裁剪图像
让我们详细了解如何在线加载现有图像和裁剪图像。首先,我们将裁剪 PNG/croppng 并以相同的格式保存更新后的图像。 PNG 将从本地驱动器加载,在线裁剪照片,结果输出保存在云存储中。如果我们没有指定输出文件名,响应将包含流图像。
- 首先,我们需要创建一个基于个性化客户端凭证的 ImagingApi 实例
- 其次,使用 File 对象从本地文件夹中读取 PNG 文件
- 创建 byte[] 实例并使用 readAllBytes(…) 方法从文件中读取所有字节
- 现在指定关于开始裁剪操作点的尺寸和 X、Y 坐标
- 随后,创建一个 CreateCroppedImageRequest 实例,它需要上述所有参数和结果图像的名称
- 最后,使用 createCroppedImage(…) 方法裁剪图像
// 从 https://dashboard.aspose.cloud/ 获取 ClientID 和 ClientSecret
String clientId = "7ef10407-c1b7-43bd-9603-5ea9c6db83cd";
String clientSecret = "ba7cc4dc0c0478d7b508dd8ffa029845";
// 创建成像对象
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);
// 从本地驱动器加载文件
File f = new File("PinClipart.png");
// 读取PNG图像的内容到字节数组
byte[] bytes = Files.readAllBytes(f.toPath());
// 指定裁剪图像的宽度和高度
int newWidth = 350;
int newHeight = 350;
// 指定图像裁剪的起点
int x = 100;
int y = 100;
// 在指定结果图像名称的同时创建裁剪图像请求
CreateCroppedImageRequest cropRequest = new CreateCroppedImageRequest(bytes, x,y, newWidth, newHeight, null, "Cropped.png", null);
// 调用方法裁剪 PNG 并将输出保存在云存储中
imageApi.createCroppedImage(cropRequest);
使用 cURL 命令裁剪照片
由于我们的 API 是在 REST 架构上开发的,因此我们提供了两种灵活性,即即使在任何平台上调用 API 也能获得统一的体验,以及使用 cURL 命令访问 API。现在,为了通过命令行终端使用 cURL 命令访问 API,我们需要首先使用以下命令生成 JWT 访问令牌(基于客户端凭据)。
curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=bb959721-5780-4be6-be35-ff5c3a6aa4a2&client_secret=4d84d5f6584160cbd91dba1fe145db14" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"
生成 JWT 令牌后,请调用 CropImage API 以 PNG 格式裁剪从云存储加载的照片。现在为了以 JPG 格式保存裁剪后的图像,我们针对格式参数指定 JPG 值。生成的裁剪图片在响应流中返回。
curl -v -X GET "https://api.aspose.cloud/v3.0/imaging/image1.jpg/crop?x=50&y=50&width=200&height=200&format=JPG" \
-H "accept: application/json" \
-H "authorization: Bearer <JWT Token>"
-o "cropped.jpg"
结论
到本文结束时,我们已经了解了如何使用 Java 代码片段裁剪照片的步骤。同时,我们还探索了使用 cURL 命令在线裁剪图像的选项。除了裁剪图片操作,您还可以浏览 产品文档 以了解 API 提供的其他令人兴奋的功能。在使用代码片段之前,您可以通过 swagger API 参考 在浏览器中探索 API 功能。
尽管如此,我们为用户提供了充分的灵活性,使他们能够从 GitHub(它是在 MIT 许可下发布的)下载图像处理 API 的完整源代码。如果您在使用 API 时遇到任何问题,您可以考虑通过免费的 产品支持论坛 联系我们寻求快速解决方案。
相关文章
请访问以下链接以了解更多信息: