Витяг кадрів TIFF

Формат файлу зображення тегів, скорочено TIFF або TIF, — це комп’ютерний формат файлу для зберігання растрових графічних зображень, популярний серед художників-графіків, видавничої галузі та фотографів. TIFF відрізняється від JPEG, GIF і PNG, оскільки це «нестиснений» формат. Файли TIFF мають можливість зберігати кілька зображень, кожне з яких має кілька каналів. Як правило, ці кілька зображень представляють послідовні кадри в стеку часу або z-стеку зображень, і, отже, кожне з цих зображень має однаковий розмір.

Інші параметри, які ми отримуємо в TIFF, — це шари та сторінки, де шар можна порівняти з прозорістю, до якої застосовуються ефекти зображення або зображення та розміщуються поверх або під зображенням. Як показано на зображенні нижче, зображення демонструє кілька наявних шарів. У цій статті ми збираємося обговорити кроки, як витягнути кадри з багатокадрових зображень TIFF за допомогою Aspose.Imaging Cloud SDK для .NET.

TIFF зображення з рамками

Встановлення SDK

Aspose.Imaging Cloud SDK for .NET – це SDK для програмування, розроблений на основі API Aspose.Imaging Cloud і надає розробникам .NET усі можливості обробки зображень. Тож першим кроком є встановлення SDK, який доступний для завантаження на NuGet і GitHub. Виконайте наведену нижче команду, щоб установити SDK з бібліотеки NuGet.

Install-Package Aspose.Imaging-Cloud

Або як альтернативу ви можете додати пакет за допомогою менеджера пакетів NuGet у Visual Studio, як показано нижче. Ви можете перейти за наведеним нижче посиланням, щоб отримати додаткові відомості про Як інсталювати Aspose.Cloud SDKs.

Aspose.Imaging Cloud SDK

Тепер, щоб використовувати SDK, наступним кроком є отримання персональних даних ClientID і ClientSecret. Тому першим кроком є створення облікового запису, відвідавши інформаційну панель Aspose.Cloud. Якщо у вас є обліковий запис GitHub або Google, просто зареєструйтеся. В іншому випадку натисніть кнопку Створити новий обліковий запис і надайте необхідну інформацію. Тепер увійдіть на інформаційну панель, використовуючи облікові дані, розгорніть розділ «Програми» на інформаційній панелі та прокрутіть униз до розділу «Облікові дані клієнта», щоб переглянути дані про ідентифікатор клієнта та секрет клієнта.

Попередній перегляд ClientID і ClientSecret

Витягніть кадри TIFF за допомогою команди cURL

По-перше, ми обговоримо вилучення кадрів TIFF за допомогою команди cURL, оскільки це один із зручних способів доступу до REST API на будь-якій платформі. Незалежно від платформи та основних архітектурних складнощів. Отже, щоб використовувати команди cURL, першим кроком є генерація JSON Web Token (JWT) на основі ваших даних ClientID і ClientSecret, отриманих з інформаційної панелі Aspose.Cloud. Будь ласка, виконайте таку команду в терміналі, щоб створити маркер 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"

Перш ніж продовжити, зауважте, що фрейм можна видобути за допомогою одного з двох API:

Перший API передбачає, що ви спочатку завантажите зображення в Cloud Storage, а потім передасте його ім’я в URL-адресу API. Після оновлення параметрів зображення API повертає оновлене зображення у відповідь.

З іншого боку, за допомогою другого API ви можете безпосередньо передати зображення в тіло запиту. Це також дозволяє зберегти оновлений образ у хмарному сховищі, вказавши значення параметра outPath. Однак, якщо ви не вкажете значення, відповідь міститиме потокове зображення.

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

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

Як витягнути кадри TIFF у C#

У цьому розділі ми витягнемо кадр TIFF за допомогою C# .NET. Виконайте наведені нижче дії

  • Першим кроком є створення об’єкта ImagingApi із наданням ClientID і ClientSecret як аргументів
  • Створіть рядковий об’єкт, що визначає вхідне зображення TIFF
  • Щоб вказати кадр, який потрібно витягнути, створіть ціле число
  • Створіть цілі об’єкти, щоб задати розміри витягнутої рамки
  • Наступним кроком є створення об’єкта GetImageFrameRequest, який приймає вхідне ім’я TIFF, frameID та інші параметри, пов’язані з витягнутими розмірами кадру як аргументи.
  • Передостанній виклик GetImageFrame(..) методу ImagingApi, який приймає об’єкт GetImageFrameRequest як вхідний аргумент
  • Нарешті, збережіть результат, щоб завантажити диск
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, Rotate).te90FlipY, RotateNoneFlipNone, RotateNoneFlipX, RotateNoneFlipXY, RotateNoneFlipY).Типовим є RotateNoneFlipNone.

Висновок

Вилучення кадрів TIFF із багатокадрового TIFF було пояснено у наведеній вище статті. Окрім вилучення кадрів, API дає змогу змінювати розмір кадрів TIFF, отримувати властивості кадру TIFF, обрізати кадр TIFF, обертати кадр TIFF, тощо. Якщо у вас виникнуть проблеми під час використання API, зв’яжіться з нами через безкоштовний форум підтримки.

Ми також пропонуємо вам перейти за наступними посиланнями для отримання додаткової інформації