Одной из выдающихся особенностей файлов TIFF является возможность хранить несколько изображений (каждое из которых имеет несколько каналов) в виде последовательных кадров во временном стеке или z-стеке изображений. Теперь в этой статье мы собираемся объяснить шаги по извлечению кадра TIFF, изменению его размера и отдельному сохранению в хранилище. Онлайн-операция изменения размера изображения обслуживает новые размеры (ширину и высоту) при сохранении обновленного кадра TIFF.
- API изменения размера изображения
- Изменить размер изображения онлайн в Java
- Уменьшите размер изображения с помощью команд cURL
API изменения размера изображения
Aspose.Imaging Cloud SDK для Java — это наше решение на основе REST, позволяющее программно редактировать, манипулировать и преобразовывать растровые изображения, метафайлы и Photoshop в различные поддерживаемые форматы. Он также предлагает функцию управления изображениями TIFF, где мы можем даже работать с отдельными кадрами TIFF. Теперь, чтобы начать использовать SDK, нам нужно добавить ссылку на него в проект 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, создайте бесплатную учетную запись, используя действующий адрес электронной почты.
Изменить размер изображения онлайн в Java
В этом разделе мы собираемся использовать API GetImageFrame для разработки нашего средства изменения размера изображения TIFF. Мы также загрузим изображение в облачное хранилище, и после обновления параметров изображения измененное изображение будет возвращено в ответном потоке. Обратите внимание, что API позволяет массово изменять размер фотографий или изменять размер только определенного кадра TIFF с помощью параметра saveOtherFrames.
- Во-первых, создайте объект ImagingApi, используя персонализированные учетные данные клиента.
- Во-вторых, прочитайте содержимое первого изображения TIFF с помощью метода readAllBytes(…) и верните его в массив byte[]
- В-третьих, создайте экземпляр класса UploadFileRequest, в который мы передаем имя изображения TIFF.
- Теперь загрузите первое изображение TIFF в облачное хранилище, используя метод uploadFile(…)
- Следующим шагом является указание индекса кадра TIFF, новых размеров высоты и ширины и конкретного индекса кадра 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("TiffSampleImage.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 = 400;
Integer newHeight = 600;
// В результате будет включен только указанный кадр, а не другие кадры.
Boolean saveOtherFrames = false;
// Создайте объект запроса для извлечения TIFF-кадров на основе указанных сведений.
GetImageFrameRequest getImageFrameRequest = new GetImageFrameRequest("input.tiff", frameId, newWidth, newHeight,
null, null, null, null, null, saveOtherFrames, null, null);
// извлеченный кадр возвращается в потоке ответа
byte[] updatedImage = imageApi.getImageFrame(getImageFrameRequest);
// Сохраните извлеченный кадр TIFF в локальном хранилище
FileOutputStream fos = new FileOutputStream("/Users/nayyer/Documents/" + "Extracted-TIFF.tiff");
fos.write(updatedImage);
fos.close();
Образцы изображений TIFF, используемые в приведенном выше примере, можно загрузить с TiffSampleImage.tiff.
Уменьшите размер изображения с помощью команд cURL
Благодаря REST-архитектуре API к нему также можно получить доступ с помощью команд cURL. Итак, в этом разделе мы собираемся обсудить детали того, как уменьшить размер изображения или извлечь 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/input.tiff/frames/0?newWidth=400&newHeight=600&saveOtherFrames=false" \
-H "accept: application/json" \
-H "authorization: Bearer <JWT Token>"
-o ResizedFrame.tiff
Заключение
В этой статье представлены простые, но удивительные сведения о том, как изменить размер изображения (TIFF) с помощью Java. В этом руководстве также объясняются все шаги по изменению размера кадра TIFF с помощью команд cURL. Обратите внимание, что еще один способ протестировать возможности API — через SwaggerUI в веб-браузере. Кроме того, если вы хотите изменить исходный код SDK, его можно загрузить с GitHub, так как он опубликован под лицензией MIT.
Тем не менее, Документация по продукту — прекрасный источник информации, позволяющий узнать все необходимые подробности о других интересных функциях API. Наконец, если у вас возникнут проблемы при использовании API, вы можете обратиться к нам за быстрым решением через бесплатный форум поддержки продукта.
Статьи по Теме
Пожалуйста, перейдите по следующим ссылкам, чтобы узнать больше о: