调整图像大小

使用 Java 调整 TIFF 图像的大小

我们知道 TIFF 文件的显着特征之一是它能够将多个图像(每个图像都有多个通道)存储为图像时间堆栈或 z 堆栈中的连续帧。因此,本文介绍了如何从 TIFF 图像中提取帧,调整其大小并将其单独保存在存储器中。调整大小操作需要指定 TIFF 帧的新尺寸(宽度和高度)。

调整图像 API

Aspose.Imaging Cloud SDK for Java 是我们基于 REST 的解决方案,提供以编程方式编辑、操作和转换光栅、图元文件、photoshop 为各种支持的格式 的功能。同时,还提供了处理 TIFF 图像的功能,我们甚至可以处理单个 TIFF 帧。现在,为了开始使用 SDK,我们需要在我们的 java 项目中添加它的引用,方法是在 pom.xml(maven 构建类型项目)中包含以下信息。

<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 中在线调整图像大小

在本节中,我们将使用 GetImageFrame API 来开发我们的 TIFF 图片缩放器。此 API 请求将图片名称作为 URL 中的路径,因此,我们首先需要将图片上传到 Cloud Storage。更新图像参数后,API 在响应中返回更新后的图像。您还可以获得批量调整照片大小的功能,并且可以指定我们是否需要使用 saveOtherFrames 参数仅调整特定 TIFF 帧的大小。

  • 首先,根据个性化客户端凭证创建一个 ImagingApi 对象
  • 其次,使用 readAllBytes(…) 方法读取第一个 TIFF 图像的内容并传递给 byte[] 数组
  • 第三,创建一个 UploadFileRequest 类的实例,我们在其中指定 TIFF over Cloud storage 的名称
  • 现在使用 uploadFile(…) 方法将第一个 TIFF 图像上传到云存储
  • 指定 TIFF 帧索引、提取帧的新高度和宽度,并指定仅调整指定帧的大小
  • 现在创建一个 GetImageFrameRequest 对象,我们在其中指定输入 TIFF 图像和上面定义的属性
  • 调用 ImagingAPI 的 getImageFrame(…) 方法获取 TIFF 帧
  • 使用 FileOutputStream 对象将提取的帧保存到本地驱动器
// 从 https://dashboard.aspose.cloud/ 获取 ClientID 和 ClientSecret
String clientId = "7ef10407-c1b7-43bd-9603-5ea9c6db83cd";
String clientSecret = "ba7cc4dc0c0478d7b508dd8ffa029845";

// 创建成像对象
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);

// 从本地系统加载第一个 TIFF 图像
File file1 = new File("TiffSampleImage.tif");
byte[] imageStream = Files.readAllBytes(file1.toPath());
			
// 创建文件上传请求对象
UploadFileRequest uploadRequest = new UploadFileRequest("input.tiff",imageStream,null);
// 将第一张 TIFF 图像上传到云存储
imageApi.uploadFile(uploadRequest);

Integer frameId = 0; // Frame number inside TIFF
// 提取框架的新宽度和高度
Integer newWidth = 400;
Integer newHeight = 600;

// 结果仅包含指定的帧而不包含其他帧
Boolean saveOtherFrames = false;

// 创建请求对象以根据指定的详细信息提取 tiff 帧
GetImageFrameRequest getImageFrameRequest = new GetImageFrameRequest("input.tiff", frameId, newWidth, newHeight,
                    null, null, null, null, null, saveOtherFrames, null, null);

// 提取的帧在响应流中返回
byte[] updatedImage = imageApi.getImageFrame(getImageFrameRequest);

// 将提取的 TIFF 帧保存在本地存储中
FileOutputStream fos = new FileOutputStream("/Users/nayyer/Documents/" + "Extracted-TIFF.tiff");
fos.write(updatedImage);
fos.close();
调整 tiff 帧大小

调整 TIFF 帧预览大小

上例中使用的示例 TIFF 图像可以从 TiffSampleImage.tiff 下载。

使用 cURL 命令减小图像大小

由于 API 的 REST 架构,它也可以通过 cURL 命令访问。因此,在本节中,我们将讨论有关如何使用 cURL 命令减小图像大小或提取特定尺寸的 tiff 帧的详细信息。现在第一步是使用以下命令生成 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 令牌后,我们需要执行以下命令来调整 TIFF 帧的大小。

curl -v -X GET "https://api.aspose.cloud/v3.0/imaging/input.tiff/frames/0?newWidth=400&newHeight=600&saveOtherFrames=false" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>"
-o ResizedFrame.tiff

结论

本文提供了一些关于如何使用 Java 云 SDK 调整图像 (TIFF) 大小的惊人细节。我们已经了解了使用 Java 代码片段调整 TIFF 帧大小的步骤,并探索了使用 cURL 命令在线调整图像大小的选项。您还可以考虑通过 Web 浏览器中的 SwaggerUI 来测试 API 的有前途的功能。如果您想修改 SDK 的源代码,可以从 GitHub 下载(我们所有的 Cloud SDK 都是在 MIT 许可下开发的)。

尽管如此,产品文档 是了解 API 提供的其他令人兴奋的功能的绝佳信息来源 最后,如果您在使用 API 时遇到任何问题,您可以考虑通过免费联系我们快速解决产品支持论坛

相关文章

请访问以下链接以了解更多信息: