タグ イメージ ファイル形式 (略称 TIFF または TIF) は、ラスター グラフィック イメージを保存するためのコンピュータ ファイル形式で、グラフィック アーティスト、出版業界、写真家の間で人気があります。TIFF は「非圧縮」形式であるため、JPEG、GIF、PNG とは異なります。TIFF ファイルには、複数のチャネルを持つ複数のイメージを保存できます。通常、これらの複数のイメージは、イメージのタイム スタックまたは Z スタック内の連続したフレームを表し、したがって、これらのイメージはすべて同じ次元を持ちます。
TIFF で利用できるその他のオプションは、レイヤーとページです。レイヤーは透明度に例えられ、その上に画像効果や画像が適用され、画像の上または下に配置できます。下の画像に示すように、画像には複数のレイヤーがあります。この記事では、Aspose.Imaging Cloud SDK for .NET を使用して、マルチフレーム TIFF 画像からフレームを抽出する手順について説明します。
SDKのインストール
Aspose.Imaging Cloud SDK for .NET は、Aspose.Imaging Cloud API をベースに開発されたプログラミング SDK で、.NET 開発者にあらゆる画像操作機能を提供します。最初のステップは、NuGet および GitHub からダウンロードできる SDK をインストールすることです。次のコマンドを実行して、NuGet ライブラリから SDK をインストールします。
Install-Package Aspose.Imaging-Cloud
または、代わりに、以下に示すように、Visual Studio の NuGet パッケージ マネージャーを使用してパッケージを追加することもできます。Aspose.Cloud SDK のインストール方法 の詳細については、次のリンクを参照してください。
SDK を使用するには、次のステップとして、個人用の ClientID と ClientSecret の詳細を取得する必要があります。そのため、最初のステップは Aspose.Cloud ダッシュボード にアクセスしてアカウントを作成することです。GitHub または Google アカウントをお持ちの場合は、サインアップするだけです。そうでない場合は、新しいアカウントの作成 ボタンをクリックして、必要な情報を入力します。資格情報を使用してダッシュボードにログインし、ダッシュボードからアプリケーション セクションを展開して、クライアント資格情報セクションまで下にスクロールして、クライアント ID とクライアント シークレットの詳細を確認します。
cURLコマンドを使用してTIFFフレームを抽出する
まず、cURL コマンドを使用した TIFF フレームの抽出について説明します。これは、プラットフォームや基盤となるアーキテクチャの複雑さに関係なく、あらゆるプラットフォームで REST API にアクセスする便利な方法の 1 つです。したがって、cURL コマンドを使用するには、まず Aspose.Cloud ダッシュボードから取得した ClientID と ClientSecret の詳細に基づいて JSON Web トークン (JWT) を生成する必要があります。ターミナルで次のコマンドを実行して、JWT トークンを生成します。
curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=718e4235-8866-4ebe-bff4-f5a14a4b6466&client_secret=388e864b819d8b067a8b1cb625a2ea8e" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"
先に進む前に、次の 2 つの API のいずれかを使用してフレームを抽出できることに注意してください。
最初の API では、まず画像を Cloud Storage にアップロードし、その名前を API URL で渡す必要があります。画像パラメータを更新した後、API はレスポンスで更新された画像を返します。
一方、2 番目の API では、リクエスト本文で画像を直接渡すことができます。また、outPath パラメータ値を指定して、更新された画像を Cloud Storage に保存することもできます。ただし、値を指定しないと、レスポンスにはストリーミングされた画像が含まれます。
ここで、次のコマンドを使用して、クラウドストレージにすでにアップロードされている TiffSampleImage.tiff 画像から 4 番目のフレームを抽出します。
curl -v -X GET "https://api.aspose.cloud/v3.0/imaging/TiffSampleImage.tiff/frames/4?saveOtherFrames=true" \
-H "accept: application/json" \
-H "authorization: Bearer <JWT Token>" \
-o myresultant.tiff
C# で TIFF フレームを抽出する方法
このセクションでは、C# .NETを使用してTIFFフレームを抽出します。以下の手順に従ってください。
- 最初のステップは、ClientIDとClientSecretを引数として指定してImagingApiのオブジェクトを作成することです。
- 入力TIFF画像を定義する文字列オブジェクトを作成する
- 抽出するフレームを指定するには、整数を作成します
- 抽出されたフレームの寸法を指定する整数オブジェクトを作成します
- 次のステップは、入力TIFF名、フレームID、および抽出されたフレーム寸法に関連するその他のパラメータを引数として受け取るオブジェクトGetImageFrameRequestを作成することである。
- 最後から2番目に、GetImageFrameRequestオブジェクトを入力引数として受け取るImagingApiのGetImageFrame(..)メソッドを呼び出します。
- 最後に、出力を保存してドライブをロードします
string clientID = "718e4235-8866-4ebe-bff4-f5a14a4b6466"; // Get ClientID from https://dashboard.aspose.cloud/
string clientSecret = "388e864b819d8b067a8b1cb625a2ea8e"; // Get CLientSecret from https://dashboard.aspose.cloud/
// ImagingApiのインスタンスを作成する
Aspose.Imaging.Cloud.Sdk.Api.ImagingApi imagingApi = new ImagingApi(clientSecret, clientID,"https://api.aspose.cloud/","v3.0",false);
// 入力TIFF画像はクラウドストレージで利用可能
String fileName = "TiffSampleImage.tiff";
int? frameId = 5; // Index of a frame
int? newWidth = 300;
int? newHeight = 450;
int? x = 10;
int? y = 10;
int? rectWidth = 200;
int? rectHeight = 300;
string rotateFlipMethod = "RotateNoneFlipNone";
// 結果には指定されたフレームのみが含まれます
bool? saveOtherFrames = false;
string folder = null; // Input file is saved at the root of the storage
string storage = null; // We are using default Cloud Storage
GetImageFrameRequest getImageFrameRequest = new GetImageFrameRequest(fileName, frameId, newWidth, newHeight,
x, y, rectWidth, rectHeight, rotateFlipMethod, saveOtherFrames, folder, storage);
Stream imageFrame = imagingApi.GetImageFrame(getImageFrameRequest);
// 更新された画像をローカルストレージに保存する
using (var fileStream = File.Create("/Users/nayyershahbaz/Downloads/MyResultant.tiff"))
{
imageFrame.Seek(0, SeekOrigin.Begin);
imageFrame.CopyTo(fileStream);
}
rotateFlipMethodプロパティには、次のいずれかの値を指定できます。
RotateFlip メソッド (Rotate180FlipNone、Rotate180FlipX、Rotate180FlipXY、Rotate180FlipY、Rotate270FlipNone、Rotate270FlipX、Rotate270FlipXY、Rotate270FlipY、Rotate90FlipNone、Rotate90FlipX、Rotate90FlipXY、Rotate90FlipY、RotateNoneFlipNone、RotateNoneFlipX、RotateNoneFlipXY、RotateNoneFlipY)。デフォルトは RotateNoneFlipNone です。
結論
マルチフレームTIFFからのTIFFフレームの抽出については、上記の記事で説明しました。フレーム抽出以外にも、APIを使用すると、TIFFフレームのサイズ変更、TIFFフレームのプロパティの取得、TIFFフレームのトリミング、TIFFフレームの回転反転などが可能になります。APIの使用中に問題が発生した場合は、無料サポートフォーラムからお気軽にお問い合わせください。
さらに詳しい情報については、以下のリンクをご覧ください。