TIFF ファイルの優れた機能の 1 つは、複数の画像 (それぞれが複数のチャンネルを持つ) を画像のタイム スタックまたは 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[] 配列に返します。
- 3 番目に、TIFF 画像の名前を渡す UploadFileRequest クラスのインスタンスを作成します。
- 次に、uploadFile(…) メソッドを使用して、最初の TIFF 画像をクラウド ストレージにアップロードします。
- 次のステップは、TIFF フレーム インデックス、新しい高さと幅の寸法、および特定の TIFF フレーム インデックスを指定することです。
- ここで、入力 TIFF 画像名と上記で定義されたプロパティを渡す GetImageFrameRequest のオブジェクトを作成します。
- 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 イメージは、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 機能をテストする別のオプションは、Web ブラウザー内の SwaggerUI を使用することです。また、SDK のソース コードを変更することに興味がある場合は、GitHub からダウンロードできます。MIT ライセンスの下で公開されています。
それにもかかわらず、製品ドキュメント は、API の他のエキサイティングな機能について必要なすべての詳細を学ぶための素晴らしい情報源です。最後に、API の使用中に問題が発生した場合は、無料の 製品サポート フォーラム から迅速な解決策を得ることができます。
関連記事
詳細については、次のリンクを参照してください。