Изображение JPG является популярным форматом для печати и редактирования. Кроме того, это популярный формат изображений для обмена фотографиями и другими изображениями в Интернете, а также между пользователями мобильных устройств и ПК. Небольшой размер файла изображений JPG позволяет хранить тысячи изображений в небольшом объеме памяти. Теперь, когда сжатие происходит с потерями, это означает, что определенная ненужная информация удаляется навсегда. С другой стороны, самое большое преимущество PNG по сравнению с JPEG заключается в том, что сжатие происходит без потерь, что означает отсутствие потери качества при каждом открытии и повторном сохранении. PNG также хорошо обрабатывает детализированные высококонтрастные изображения. В этой статье мы подробно обсудим, как конвертировать JPG в PNG с помощью Java Cloud SDK.
- API преобразования изображений
- Преобразование JPG в PNG в Java
- Измените JPG на PNG с помощью команд cURL
API преобразования изображений
Наш API на основе REST предлагает возможности для создания, редактирования и преобразования файлов изображений в различные поддерживаемые форматы файлов. Теперь, чтобы реализовать функцию загрузки и преобразования jpg в прозрачное png в приложении Java, нам нужно использовать Aspose.Imaging Cloud SDK для Java, так как это оболочка для Cloud 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>
После добавления ссылки JDK в проект следующим важным шагом будет создание бесплатной учетной записи на Aspose Cloud Dashboard. Просто подпишитесь на бесплатную пробную версию через действующий адрес электронной почты. Теперь войдите в систему, используя только что созданную учетную запись, и найдите/создайте идентификатор клиента и секрет клиента на Cloud Dashboard. Эти данные необходимы для аутентификации в следующих разделах.
Преобразование JPG в PNG в Java
Теперь давайте обсудим детали того, как мы можем преобразовать JPG в PNG, используя фрагмент кода Java. Чтобы выполнить преобразование, у нас есть два API для преобразования изображения в другой формат:
GET API ожидает, что мы сначала загрузим изображение в облачное хранилище, а затем передаем его имя в URL-адресе API. После обновления параметров изображения API возвращает обновленное изображение в ответе. Если вы хотите сохранить обновленный образ в облачном хранилище, вам необходимо сделать это, как показано в приведенных ниже примерах.
С другой стороны, при вызове второго POST API вы можете напрямую передать изображение в теле запроса. Он также позволяет сохранить обновленный образ в облачном хранилище, указав значение параметра outPath. Однако, если вы не укажете значение, ответ будет содержать потоковое изображение.
- Создайте экземпляр ImagingApi на основе ваших персональных учетных данных клиента.
- Прочитайте все файлы JPG из локальной папки, используя объект File[]
- Перебирать файлы в массиве и получать содержимое отдельного изображения в экземпляре byte[]
- Теперь создайте объект CreateConvertedImageRequest, где мы указываем формат выходного изображения как PNG.
- Вызовите метод createConvertedImage(…), который сохраняет JPG как PNG и возвращает результат в виде потока ответа.
- Наконец, сохраните файл PNG на локальный диск, используя объект FileOutputStream.
// Получите ClientID и ClientSecret с https://dashboard.aspose.cloud/
String clientId = "7ef10407-c1b7-43bd-9603-5ea9c6db83cd";
String clientSecret = "ba7cc4dc0c0478d7b508dd8ffa029845";
// создать объект изображения
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);
File directory = new File("/Users/");
//Получить все файлы из папки
File[] allFiles = directory.listFiles();
if (allFiles == null || allFiles.length == 0) {
throw new RuntimeException("No files present in the directory: " + directory.getAbsolutePath());
}
//Установите здесь необходимые расширения изображений.
List<String> supportedImageExtensions = Arrays.asList("jpg","jpeg");
int counter =0;
//Отфильтрованный список файлов изображений JPG
List<File> acceptedImages = new ArrayList<>();
// Итерация по каждому файлу изображения, считанному из локальной папки
for (File file : allFiles) {
//Разобрать расширение файла
String fileExtension = file.getName().substring(file.getName().lastIndexOf(".") + 1);
//Проверьте, указано ли расширение в списке поддерживаемых расширений изображения.
if (supportedImageExtensions.stream().anyMatch(fileExtension::equalsIgnoreCase)) {
//Добавьте изображение в отфильтрованный список
acceptedImages.add(file);
// читать содержимое изображения JPG
byte[] bytes = Files.readAllBytes(acceptedImages.get(counter).toPath());
// создать запрос на преобразование изображения с результирующим форматом PNG
CreateConvertedImageRequest request = new CreateConvertedImageRequest(bytes, "PNG", null, null);
// конвертировать JPG в PNG и возвращать результирующий файл в потоке ответов
byte[] exportedImage = imageApi.createConvertedImage(request);
// Сохранить экспортированное изображение в локальное хранилище
FileOutputStream fos = new FileOutputStream(directory + "/"+file.getName().replaceFirst("[.][^.]+$", "")+".png");
fos.write(exportedImage);
fos.close();
}
}
Измените JPG на PNG с помощью команд cURL
Поскольку мы можем получить доступ к REST API с помощью команд cURL, поэтому в этом разделе мы изучаем детали преобразования JPG в прозрачный PNG. Теперь в качестве предварительного условия нам нужно сначала сгенерировать токен доступа 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"
Теперь мы собираемся использовать вызов ConvertImage API, он ожидает, что входной JPG уже будет доступен в облачном хранилище. Теперь выполните следующую команду, чтобы изменить JPG на PNG.
curl -v -X GET "https://api.aspose.cloud/v3.0/imaging/image1.jpg/convert?format=PNG" \
-H "accept: application/json" \
-H "authorization: Bearer <JWT Token>" \
-o Converted.png
Заключение
В этой статье представлены некоторые удивительные подробности о том, как мы можем преобразовать JPG в PNG, используя фрагмент кода Java. Точно так же мы также обсудили шаги по преобразованию JPG в прозрачный PNG с помощью команд cURL. Обратите внимание, что Документация по продукту — это прекрасное место, где можно узнать о других интересных функциях, предлагаемых API. Если вам нужно опробовать эти API в браузере, попробуйте использовать Справочник по API swagger.
В конце концов, обратите внимание, что все наши Cloud SDK публикуются под лицензией MIT, поэтому вы можете загрузить полный исходный код с GitHub и изменить его в соответствии со своими требованиями. Наконец, если вы обнаружите какие-либо проблемы при использовании API, вы можете обратиться к нам за быстрым решением через бесплатный форум поддержки продукта.
Статьи по Теме
Пожалуйста, перейдите по следующим ссылкам, чтобы узнать больше о: