Формат TIFF(Tag Image File Format) широко используется в издательском деле, графическом дизайне и фотографии благодаря своей способности хранить растровую графику высокого качества. В отличие от JPEG или PNG, файл TIFF может содержать несколько изображений или кадров в одном файле. Эти многокадровые TIFF-изображения часто используются в медицинской визуализации, отсканированных документах и многослойных дизайнах.

API обработки изображений

Aspose.Imaging Cloud SDK for .NET — это удивительный API на основе архитектуры REST, предлагающий возможности для манипуляции и обработки изображений онлайн. Он предлагает простой и удобный подход для извлечения кадра tiff из многокадрового TIFF-изображения в коде C# .NET. SDK доступен для загрузки с NuGet и GitHub. Теперь установите REST API, чтобы начать манипуляции с TIFF и другими форматами изображений.

Install-Package Aspose.Imaging-Cloud

Получите ваш Client ID и Client Secret с Aspose Cloud dashboard.

Извлечение кадров TIFF с использованием C#

Этот раздел объясняет детали того, как мы можем легко извлекать кадры TIFF, используя C# .NET.

  • Во-первых, создайте объект ImagingApi, предоставив ClientID и ClientSecret в качестве аргументов.
  • Во-вторых, создайте объект GetImageFrameRequest, который принимает на вход имя TIFF, frameID и другие параметры в качестве аргументов.
  • Теперь вызовите GetImageFrame(..) метод ImagingApi, где мы передаем объект GetImageFrameRequest в качестве входного аргумента.
  • Наконец, сохраните извлеченное изображение.
// Получите ClientID и ClientSecter с https://dashboard.aspose.cloud/
string clientID = "XXXXX-XXXXXXXXXX-bff4-f5a14a4b6466"; 
string clientSecret = "XXXXXXXXXX";

// создать экземпляр ImagingApi
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/nayyer/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 кадры с помощью cURL

В качестве альтернативы мы также можем использовать команды cURL для выполнения этой операции. Вы можете рассмотреть возможность использования любого из следующих API вызовов для выполнения этой операции.

  1. GET /imaging/{name}/frames/{frameId} - Загрузить изображение из облачного хранилища и получить изображение в ответ.
  2. POST /imaging/frames/{frameId} - Передайте TIFF в теле запроса и получите результирующее изображение в ответе.

Первый шаг - сгенерировать JSON Web Token (JWT) на основе вашего ClientID и ClientSecret. Поэтому выполните следующую команду в терминале для генерации токена JWT:

curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=XXXXXX-XXXXX-XXX-bff4-f5a14a4b6466&client_secret=XXXXXXXXXXX" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"

Теперь выполните следующую команду, чтобы извлечь 2-й кадр из TiffSampleImage.tiff изображения, уже загруженного в облачное хранилище.

curl -v -X GET "https://api.aspose.cloud/v3.0/imaging/TiffSampleImage.tiff/frames/2?saveOtherFrames=true" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>" \
-o myresultant.tiff

Заключение

Возможность извлекать отдельные кадры из многостраничных TIFF изображений является ценным инструментом при работе со сканированными многостраничными документами, многослойными файловыми изображениями или наборами данных медицинской визуализации. С помощью Aspose.Imaging Cloud SDK для .NET вы можете легко автоматизировать этот процесс, используя либо вызовы REST API, либо код на C#.

Рекомендуемые статьи

Мы рекомендуем вам посетить следующие ссылки, чтобы узнать о: