фото дублікат

Знайдіть повторювані зображення за допомогою Java Cloud SDK

Зображення JPG є популярним форматом для друку та редагування. Крім того, це популярний формат зображень для обміну фотографіями та іншими зображеннями в Інтернеті та між користувачами мобільних пристроїв і ПК. Невеликий розмір файлу зображень у форматі JPG дозволяє зберігати тисячі зображень у невеликій пам’яті. Тепер, оскільки стиснення відбувається з втратами, це означає, що певна непотрібна інформація видаляється назавжди. З іншого боку, найбільша перевага PNG над JPEG полягає в тому, що стиснення відбувається без втрат, тобто немає втрати якості кожного разу, коли його відкривають і зберігають знову. PNG також добре обробляє деталізовані висококонтрастні зображення. Тепер у цій статті ми збираємося обговорити деталі того, як конвертувати JPG у PNG за допомогою Java Cloud SDK

API перетворення зображень

Наш API на основі REST пропонує можливості створювати, редагувати та перетворювати файли зображень у різні підтримувані формати файлів. Тепер, щоб реалізувати функцію завантаження та перетворення jpg у прозорий png у додатку Java, нам потрібно використовувати Aspose.Imaging Cloud SDK for Java, оскільки він є оболонкою для Cloud 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>

Після додавання посилання на JDK у проект наступним важливим кроком стане створення безкоштовного облікового запису на Aspose Cloud Dashboard. Просто підпишіться на безкоштовну пробну версію за допомогою дійсної електронної адреси. Тепер увійдіть, використовуючи щойно створений обліковий запис, і знайдіть/створіть ідентифікатор клієнта та секрет клієнта на Cloud Dashboard. Ці дані потрібні для автентифікації в наступних розділах.

Перетворіть JPG на PNG у Java

Тепер давайте обговоримо деталі того, як ми можемо перетворити JPG на PNG за допомогою фрагмента коду Java. Щоб виконати перетворення, у нас є два API для перетворення зображення в інший формат:

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

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

Схожі статті

Перейдіть за наведеними нижче посиланнями, щоб дізнатися більше про: