duplikát fotografie

Nájdite duplicitné obrázky pomocou Java Cloud SDK

Obrázok JPG je populárny formát na tlač a úpravy. Okrem toho je to populárny formát obrázkov na zdieľanie fotografií a iných obrázkov na internete a medzi používateľmi mobilných zariadení a počítačov. Malá veľkosť súboru obrázkov JPG umožňuje uložiť tisíce obrázkov do malého pamäťového priestoru. Keďže je kompresia stratová, znamená to, že určité nepotrebné informácie sa natrvalo odstránia. Na druhej strane najväčšou výhodou PNG oproti JPEG je to, že kompresia je bezstratová, čo znamená, že nedochádza k strate kvality pri každom otvorení a opätovnom uložení. PNG dobre zvláda aj detailné obrázky s vysokým kontrastom. Teraz v tomto článku budeme diskutovať o podrobnostiach o tom, ako previesť JPG na PNG pomocou Java Cloud SDK

Rozhranie API na konverziu obrázkov

Naše API založené na REST ponúka možnosti vytvárať, upravovať a transformovať obrazové súbory do rôznych podporovaných formátov súborov. Aby sme teraz implementovali funkciu načítania a prevodu jpg na png transparentné v aplikácii Java, musíme použiť Aspose.Imaging Cloud SDK for Java, pretože je to obal okolo Cloud API. Takže ďalším krokom je pridanie jeho referencie do projektu java zahrnutím nasledujúcich informácií do pom.xml projektu typu zostavy 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>

Po pridaní referencie JDK do projektu je ďalším dôležitým krokom vytvorenie bezplatného účtu cez Aspose Cloud Dashboard. Jednoducho sa zaregistrujte na bezplatnú skúšobnú verziu prostredníctvom platnej e-mailovej adresy. Teraz sa prihláste pomocou novo vytvoreného účtu a vyhľadajte/vytvorte ID klienta a tajný kľúč klienta na Cloud Dashboard. Tieto podrobnosti sú potrebné na účely overenia v nasledujúcich častiach.

Previesť JPG na PNG v Jave

Teraz poďme diskutovať o podrobnostiach o tom, ako môžeme previesť JPG na PNG pomocou útržku kódu Java. Na vykonanie konverzie máme dve rozhrania API na konverziu obrázka do iného formátu:

GET API od nás očakáva, že najprv nahráme obrázok do cloudového úložiska a potom jeho názov odošleme do adresy URL rozhrania API. Po aktualizácii parametrov obrázka API vráti aktualizovaný obrázok v odpovedi. Ak chcete uložiť aktualizovaný obrázok do cloudového úložiska, musíte to urobiť tak, ako je uvedené v príkladoch nižšie.

Na druhej strane, pri volaní druhého POST API môžete priamo odovzdať obrázok v tele požiadavky. Umožňuje vám tiež uložiť aktualizovaný obrázok do cloudového úložiska zadaním hodnoty parametra outPath. Ak však nezadáte hodnotu, odpoveď obsahuje streamovaný obrázok.

  • Vytvorte inštanciu ImagingApi na základe vašich prispôsobených poverení klienta
  • Prečítajte si všetky súbory JPG z lokálneho priečinka pomocou objektu File[]
  • Iterujte cez súbory v poli a presuňte obsah jednotlivých obrázkov do inštancie byte[]
  • Teraz vytvorte objekt CreateConvertedImageRequest, kde zadáme formát výstupného obrázka ako PNG
  • Zavolajte metódu createConvertedImage(…), ktorá uloží JPG ako PNG a vráti výsledok ako tok odpovedí
  • Nakoniec uložte súbor PNG na lokálny disk pomocou objektu FileOutputStream
// Získajte ClientID a ClientSecret z https://dashboard.aspose.cloud/
String clientId = "7ef10407-c1b7-43bd-9603-5ea9c6db83cd";
String clientSecret = "ba7cc4dc0c0478d7b508dd8ffa029845";

// vytvoriť Imaging objekt
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);

File directory = new File("/Users/");
//Získajte všetky súbory z priečinka
File[] allFiles = directory.listFiles();
if (allFiles == null || allFiles.length == 0) {
    throw new RuntimeException("No files present in the directory: " + directory.getAbsolutePath());
}

//Tu nastavte požadované rozšírenia obrázkov.
List<String> supportedImageExtensions = Arrays.asList("jpg","jpeg");

int counter =0;
//Filtrovaný zoznam obrázkových súborov JPG
List<File> acceptedImages = new ArrayList<>();

// Iterujte každý obrazový súbor načítaný z lokálneho priečinka			 
for (File file : allFiles) {
    //Analyzujte príponu súboru
    String fileExtension = file.getName().substring(file.getName().lastIndexOf(".") + 1);
	
    //Skontrolujte, či je rozšírenie uvedené v zozname podporovaných ImageExtensions
    if (supportedImageExtensions.stream().anyMatch(fileExtension::equalsIgnoreCase)) {
	//Pridajte obrázok do filtrovaného zoznamu
	acceptedImages.add(file);
                  
    // čítať obsah obrázkov vo formáte JPG
    byte[] bytes = Files.readAllBytes(acceptedImages.get(counter).toPath());
    
    // vytvoriť požiadavku na konverziu obrázkov s výsledným formátom ako PNG
    CreateConvertedImageRequest request = new CreateConvertedImageRequest(bytes, "PNG", null, null);
    
    // previesť JPG na PNG a vrátiť výsledný súbor v toku odpovedí
    byte[] exportedImage = imageApi.createConvertedImage(request);
    
    // Uložte exportovaný obrázok do lokálneho úložiska
    FileOutputStream fos = new FileOutputStream(directory + "/"+file.getName().replaceFirst("[.][^.]+$", "")+".png");
    fos.write(exportedImage);
    fos.close();
    }
}

Zmeňte JPG na PNG pomocou príkazov cURL

Keďže k rozhraniam REST API môžeme pristupovať pomocou príkazov cURL, v tejto časti skúmame podrobnosti o prevode JPG na transparentný PNG. Teraz ako nevyhnutnú podmienku musíme najprv vygenerovať prístupový token JWT (na základe poverení klienta) pri vykonávaní nasledujúceho príkazu.

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"

Teraz použijeme volanie ConvertImage API, očakáva sa, že vstupný JPG bude už dostupný v cloudovom úložisku. Teraz vykonajte nasledujúci príkaz na zmenu JPG na 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

Záver

Tento článok poskytuje niekoľko úžasných podrobností o tom, ako môžeme previesť JPG na PNG pomocou útržku kódu Java. Podobne sme diskutovali aj o krokoch na konverziu JPG na transparentný PNG pomocou príkazov cURL. Upozorňujeme, že Product Documentation je úžasné miesto, kde sa dozviete o ďalších zaujímavých funkciách, ktoré ponúka API. V prípade, že potrebujete vyskúšať tieto API v prehliadači, skúste použiť swagger API Reference.

Predposledné, upozorňujeme, že všetky naše Cloud SDK sú publikované pod licenciou MIT, takže môžete zvážiť stiahnutie úplného zdrojového kódu z GitHub a jeho úpravu podľa vašich požiadaviek. Nakoniec, ak pri používaní rozhrania API narazíte na nejaké problémy, môžete zvážiť, či nás požiadate o rýchle riešenie prostredníctvom bezplatného fóra podpory produktov.

Súvisiace články

Ak chcete získať viac informácií, navštívte nasledujúce odkazy: