
TIFF ファイルから画像を抽出する方法
TIF の TIFF は、Tag Image File Format の略で、グラフィック アーティスト、出版業界、写真家によって広く使用されている一般的なラスター グラフィックス イメージの 1 つです。 TIFF は JPEG、GIF、および PNG とは異なります。これは、「非圧縮」形式であり、対応する JPEG よりもはるかに多くの画像データを格納できるためです。現在、TIFF ファイルの顕著な特徴の 1 つは、複数の画像 (それぞれが複数のチャネルを持っている) を画像のタイム スタックまたは z スタックの連続フレームとして格納する機能です。この記事では、Java Cloud SDK を使用してマルチフレーム TIFF 画像からフレームを抽出する方法について詳しく説明します。
TIFF 画像処理 API
ラスター、メタファイル、フォトショップ、その他の サポートされている形式 をさまざまなファイル形式に編集、操作、変換する機能を提供する画像処理 API を作成しました。 TIFF 画像操作について言えば、API は TIFF 画像を処理する能力が非常に高いです。したがって、この記事の範囲に従って、REST API のラッパーである Aspose.Imaging Cloud SDK for Java を使用します。したがって、その機能を利用するための最初のステップは、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 で TIFF 画像を抽出する方法
Java コード スニペットを使用して tiff ファイルから画像を抽出する方法の詳細を調べてみましょう。 API では、抽出されたフレームのサイズ変更、トリミング、rotateFlip も実行できることに注意してください。さらに、ブール値パラメーター saveOtherFrames の 1 つを使用すると、結果に他のすべてのフレームを含めるか、指定したフレームのみを含めるかを指定できます。
- まず、パーソナライズされたクライアント資格情報に基づいて ImagingApi のオブジェクトを作成します
- 次に、readAllBytes(…) メソッドを使用して最初の TIFF イメージのコンテンツを読み取り、byte[] 配列に渡します。
- 3 番目に、クラウド ストレージ上の TIFF の名前を指定する UploadFileRequest クラスのインスタンスを作成します。
- uploadFile(…) メソッドを使用して、最初の 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("DeskewSampleImage.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 = 1000;
Integer newHeight = 1400;
// フレーム抽出を開始する原点
Integer x = 10;
Integer y = 10;
// フレームを抽出する矩形領域
Integer rectWidth = 900;
Integer rectHeight = 800;
// 抽出された TIFF フレームの回転角度を指定する
String rotateFlipMethod = "Rotate90FlipY";
// 他のフレームではなく、指定されたフレームのみを含める結果
Boolean saveOtherFrames = false;
// 指定された詳細に基づいて tiff フレームを抽出するリクエスト オブジェクトを作成する
GetImageFrameRequest getImageFrameRequest = new GetImageFrameRequest("input.tiff", frameId, newWidth, newHeight,
x, y, rectWidth, rectHeight, null, saveOtherFrames, null, null);
// 抽出されたフレームは応答ストリームで返されます
byte[] updatedImage = imageApi.getImageFrame(getImageFrameRequest);
// 抽出した TIFF フレームをローカル ストレージに保存する
FileOutputStream fos = new FileOutputStream("/Users/s4/Documents/" + "Extracted-TIFF.tiff");
fos.write(updatedImage);
fos.close();

TIFF フレームのプレビューを取得
上記の例で使用されているサンプル TIFF イメージは、DeskewSampleImage.tif からダウンロードできます。
cURL コマンドを使用した TIFF 画像処理
REST API にアクセスするもう 1 つの便利な方法は、cURL コマンドを使用することです。 Aspose.Imaging Cloud は REST アーキテクチャに基づいているため、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/first.tiff/frames/0?newWidth=1000&newHeight=1200&x=10&y=10&rectWidth=800&rectHeight=800&saveOtherFrames=false" \
-H "accept: application/json" \
-H "authorization: Bearer <JWT Token>" \
-o ExtractedFrame.tiff
結論
この時点で、TIFF ファイルから画像を抽出する方法について必要な詳細をすべて学習しました。 Java Java コード スニペットまたは cURL コマンドを使用して TIFF フレームを抽出するオプションを検討しました。 API の有望な機能をテストするもう 1 つの方法は、SwaggerUI を使用することです。SDK のソース コードを変更する場合は、GitHub からダウンロードできます (すべての Cloud SDK は MIT の下で開発されています)。ライセンス)。
それにもかかわらず、製品ドキュメント は、API が提供するその他のエキサイティングな機能について学ぶための素晴らしい情報源です。 製品サポート フォーラム。
関連記事
詳細については、次のリンクを参照してください。