调整图像大小

使用 Java 调整 TIFF 图像的大小

TIFF 文件的显着特征之一是它能够将多个图像(每个图像都有多个通道)存储为图像时间堆栈或 z 堆栈中的连续帧。现在在本文中,我们将解释提取 TIFF 帧、调整其大小并将其单独保存在存储器中的步骤。调整图像在线操作适应新尺寸(宽度和高度),同时保存更新的 TIFF 帧。

调整图像 API

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

<repositories> 
    <repository>
        <id>aspose-cloud</id>
        <name>artifact.aspose-cloud-releases</name>
        <url>https://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 的帐户,请使用有效的电子邮件地址创建一个免费帐户。

在 Java 中在线调整图像大小

在本节中,我们将使用 GetImageFrame API 来开发我们的 TIFF 图片缩放器。我们还将图像上传到云存储,并在更新图像参数后,将修改后的图像返回到响应流中。请注意,API 使您能够批量调整照片大小或使用 saveOtherFrames 参数仅调整特定 TIFF 帧的大小。

  • 首先,使用个性化客户端凭证创建 ImagingApi 对象
  • 其次,使用 readAllBytes(…) 方法读取第一个 TIFF 图像的内容并将其返回到 byte[] 数组
  • 第三,创建一个 UploadFileRequest 类的实例,我们在其中传递 TIFF 图像的名称
  • 现在使用 uploadFile(…) 方法将第一个 TIFF 图像上传到云存储
  • 下一步是指定 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 调整图像 (TIFF) 大小的简单但惊人的详细信息。本教程还解释了使用 cURL 命令调整 TIFF 帧大小的所有步骤。请注意,另一个测试 API 功能的选项是通过网络浏览器中的 SwaggerUI。此外,如果您有兴趣修改 SDK 的源代码,可以从 GitHub 下载它,因为它是在 MIT 许可下发布的。

然而,产品文档 是一个了不起的信息来源,可以让您了解有关 API 其他令人兴奋的功能的所有必要细节。最后,如果您在使用 API 时遇到问题,您可以考虑通过免费的 产品支持论坛 联系我们寻求快速解决方案。

相关文章

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