TIFF від TIF є абревіатурою від Tag Image File Format і є одним із популярних растрових графічних зображень, які широко використовуються художниками-графіками, видавничою галуззю та фотографами. TIFF відрізняється від JPEG, GIF і PNG, оскільки це «нестиснений» формат і може зберігати набагато більше даних зображень, ніж їхні аналоги JPEG. Тепер однією з визначних особливостей файлів TIFF є їх здатність зберігати кілька зображень (кожне має кілька каналів) як послідовні кадри в стеку часу або z-стеку зображень. Отже, у цій статті ми збираємося дослідити деталі того, як витягти кадри з багатокадрових зображень TIFF за допомогою Java Cloud SDK.
- API обробки зображень TIFF
- Як розпакувати зображення TIFF в Java
- Обробка зображень TIFF за допомогою команд cURL
API обробки зображень TIFF
Ми створили API для обробки зображень, який пропонує можливості редагування, обробки та перетворення растрів, метафайлів, Photoshop та інших підтримуваних форматів у різні формати файлів. Говорячи про обробку зображень TIFF, API дуже добре може обробляти зображення TIFF. Відповідно до змісту цієї статті ми збираємося використовувати Aspose.Imaging Cloud SDK для Java, який є оболонкою REST API. Тож першим кроком у використанні його можливостей є додавання його посилання в проект Java, включивши наступну інформацію в pom.xml (проект типу збірки maven).
<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, створіть безкоштовний обліковий запис за допомогою дійсної електронної адреси. Тепер увійдіть за допомогою щойно створеного облікового запису та знайдіть/створіть ідентифікатор клієнта та секрет клієнта на інформаційній панелі Aspose Cloud.
Як розпакувати зображення TIFF в Java
Давайте розглянемо деталі того, як видобувати зображення з файлів tiff за допомогою фрагмента коду Java. Зауважте, що API також дозволяє змінювати розмір, обрізати та обертати вилучений кадр. Крім того, один із логічних параметрів saveOtherFrames дозволяє вказати, чи включатиме результат усі інші кадри чи лише вказаний кадр.
- По-перше, створіть об’єкт ImagingApi на основі персоналізованих облікових даних клієнта
- По-друге, прочитайте вміст першого зображення TIFF за допомогою методу readAllBytes(…) і передайте його в масив byte[]
- По-третє, створіть екземпляр класу UploadFileRequest, де ми вказуємо назву TIFF у хмарному сховищі
- Тепер завантажте перше зображення TIFF у хмарне сховище за допомогою методу uploadFile(…).
- Наступним кроком буде вказати індекс кадру TIFF, висоту та ширину вилученого кадру, джерело вилучення та вказати, чи бажаєте ви вилучити кадр у певному ангелі
- Тепер створіть об’єкт GetImageFrameRequest, де ми вкажемо вхідне зображення TIFF і визначені вище властивості
- Викличте метод getImageFrame(…) ImagingAPI, щоб отримати кадр TIFF
- Збережіть витягнутий кадр на локальний диск за допомогою об’єкта FileOutputStream
// Отримайте ClientID і ClientSecret з https://dashboard.aspose.cloud/
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, використані у прикладі вище, можна завантажити з DeskewSampleImage.tif.
Обробка зображень TIFF за допомогою команд cURL
Іншим зручним способом доступу до REST API є команди cURL. Оскільки Aspose.Imaging Cloud базується на архітектурі REST, ми також можемо видобувати кадри зображень tiff за допомогою команд cURL. Тепер передумовою цієї дії є створення маркера доступу 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. Ми дослідили можливість видобування кадру TIFF за допомогою фрагмента коду Java Java або за допомогою команд cURL. Інший підхід до тестування багатообіцяючих функцій API — через SwaggerUI, а якщо ви хочете змінити вихідний код SDK, ви можете завантажити його з GitHub (усі наші хмарні SDK розроблені в рамках MIT ліцензія).
Тим не менш, Документація продукту є чудовим джерелом інформації, щоб дізнатися про інші цікаві функції, які пропонує API. Нарешті, якщо ви зіткнетеся з будь-якими проблемами під час використання API, ви можете звернутися до нас для швидкого вирішення через безкоштовну форум підтримки продуктів.
Схожі статті
Перейдіть за наведеними нижче посиланнями, щоб дізнатися більше про: