как извлечь изображение в формате tiff

Как извлечь изображения из файлов TIFF

TIFF в TIF является аббревиатурой от Tag Image File Format и входит в число популярных растровых графических изображений, широко используемых художниками-графиками, издательской индустрией и фотографами. TIFF отличается от JPEG, GIF и PNG, поскольку это «несжатый» формат, который может хранить гораздо больше данных изображения, чем их аналоги JPEG. Теперь одной из выдающихся особенностей файлов TIFF является их способность хранить несколько изображений (каждое из которых имеет несколько каналов) в виде последовательных кадров во временном стеке или z-стеке изображений. Итак, в этой статье мы подробно рассмотрим, как извлекать кадры из многокадровых изображений TIFF с помощью Java Cloud SDK.

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

Мы создали API обработки изображений, предлагающий возможности редактирования, обработки и преобразования растров, метафайлов, фотошопа и других поддерживаемых форматов в различные форматы файлов. Теперь, говоря об обработке изображений 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>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.

Как извлечь изображение 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;

// origin, чтобы начать извлечение кадра
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

Образцы изображений 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, вы можете обратиться к нам для быстрого решения через форум поддержки продукта.

Статьи по Теме

Пожалуйста, перейдите по следующим ссылкам, чтобы узнать больше о: