Foto duplizéiert

Fannt Duplizéiert Biller mat Java Cloud SDK

D’Bild JPG ass e populär Format fir Dréckerei an Redaktioun Zwecker. Ausserdeem ass et e populär Bildformat fir Fotoen an aner Biller um Internet an tëscht Handy a PC Benotzer ze deelen. Déi kleng Dateigréisst vu JPG Biller erlaabt Iech Dausende vu Biller a klenge Gedächtnisraum ze späicheren. Elo wéi d’Kompressioun verléiert ass, heescht et datt verschidde onnéideg Informatioun permanent geläscht gëtt. Um aneren Enn ass de gréisste Virdeel vu PNG iwwer JPEG datt d’Kompressioun ouni Verloscht ass, dat heescht datt et kee Qualitéitsverloscht gëtt all Kéier wann se opgemaach an erëm gespäichert gëtt. PNG geréiert och detailléiert, héich Kontrast Biller gutt. Elo an dësem Artikel wäerte mir d’Detailer diskutéieren wéi Dir JPG op PNG konvertéiert mat Java Cloud SDK

Bild Konversioun API

Eis REST-baséiert API bitt d’Fäegkeeten fir Bilddateien ze kreéieren, z’änneren an ze transforméieren op Varietéit vu ënnerstëtzte Dateiformate. Elo fir d’Feature ëmzesetzen fir jpg an png transparent an der Java Applikatioun ze lueden an ze konvertéieren, musse mir Aspose.Imaging Cloud SDK fir Java benotzen well et e Wrapper ronderëm Cloud API ass. Also de nächste Schrëtt ass seng Referenz am Java Projet ze addéieren andeems Dir folgend Informatioun an pom.xml vum Maven Build Type Project enthält.

<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>

Wann d’JDK Referenz am Projet bäigefüügt ass, ass de nächste wichtege Schrëtt e gratis Kont iwwer [Aspose Cloud Dashboard] ze kreéieren. Mellt Iech einfach un fir e Gratis Test iwwer eng valabel E-Mail Adress. Login elo mat engem neie Kont erstallt a kuckt / erstellt Client ID a Client Secret um Cloud Dashboard. Dës Detailer sinn erfuerderlech fir Authentifikatiounszwecker an de folgende Sektiounen.

Konvertéiert JPG op PNG op Java

Loosst eis elo d’Detailer diskutéieren wéi mir JPG op PNG mat Java Code Snippet konvertéieren. Fir d’Konversioun ze maachen, hu mir zwee APIen fir e Bild an en anert Format ze konvertéieren:

D’GET API erwaart eis fir d’éischt e Bild op Cloud Storage eropzelueden an dann säin Numm an der API URL weiderginn. Nodeems d’Bildparameter aktualiséiert gouf, gëtt d’API dat aktualiséiert Bild an der Äntwert zréck. Wann Dir dat aktualiséiert Bild op der Cloud Storage späichere wëllt, musst Dir dat explizit maachen wéi an de Beispiller hei ënnen.

Op der anerer Säit, wann Dir déi zweet POST API rufft, kënnt Dir d’Bild direkt am Ufro Kierper passéieren. Et léisst Iech och dat aktualiséiert Bild op der Cloud Storage späicheren andeems Dir den OutPath Parameterwäert spezifizéiert. Wéi och ëmmer, wann Dir de Wäert net spezifizéiert, enthält d’Äntwert e gestreamte Bild.

  • Erstellt eng Instanz vun ImagingApi baséiert op Äre personaliséierte Client Umeldungsinformatiounen
  • Liest all JPG Dateien aus lokalen Dossier mat Datei[] Objet
  • Iteréiert duerch Dateien an der Array an erreecht den Inhalt vum individuellen Bild an Byte [] Instanz
  • Erstellt elo en Objet vun CreateConvertedImageRequest wou mir den Ausgangsbildformat als PNG spezifizéieren
  • Rufft d’Method createConvertedImage(…) un déi JPG als PNG späichert an d’Resultat als Äntwertstroum zréckkënnt
  • Endlech späichert d’PNG-Datei op lokalen Drive mam FileOutputStream Objet
// Kritt ClientID a ClientSecret vun https://dashboard.aspose.cloud/
String clientId = "7ef10407-c1b7-43bd-9603-5ea9c6db83cd";
String clientSecret = "ba7cc4dc0c0478d7b508dd8ffa029845";

// schafen Imaging Objet
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);

File directory = new File("/Users/");
//Kritt all d'Dateien aus dem Dossier
File[] allFiles = directory.listFiles();
if (allFiles == null || allFiles.length == 0) {
    throw new RuntimeException("No files present in the directory: " + directory.getAbsolutePath());
}

//Setzt déi erfuerderlech Bildverlängerungen hei.
List<String> supportedImageExtensions = Arrays.asList("jpg","jpeg");

int counter =0;
//Filtert Lëscht vun JPG Bilddateien
List<File> acceptedImages = new ArrayList<>();

// Iteréiert duerch all Bilddatei aus dem lokalen Dossier gelies			 
for (File file : allFiles) {
    //Parse d'Dateierweiterung
    String fileExtension = file.getName().substring(file.getName().lastIndexOf(".") + 1);
	
    //Kontrolléiert ob d'Extensioun an den ënnerstëtzten ImageExtensions opgezielt ass
    if (supportedImageExtensions.stream().anyMatch(fileExtension::equalsIgnoreCase)) {
	//Füügt d'Bild op d'gefilterte Lëscht
	acceptedImages.add(file);
                  
    // liesen JPG Bild Inhalt
    byte[] bytes = Files.readAllBytes(acceptedImages.get(counter).toPath());
    
    // erstellt Bildkonvertéierungsufro mam resultéierende Format als PNG
    CreateConvertedImageRequest request = new CreateConvertedImageRequest(bytes, "PNG", null, null);
    
    // konvertéiert JPG op PNG a gitt déi resultéierend Datei als Äntwertstroum zréck
    byte[] exportedImage = imageApi.createConvertedImage(request);
    
    // Späichert exportéiert Bild op lokal Späichere
    FileOutputStream fos = new FileOutputStream(directory + "/"+file.getName().replaceFirst("[.][^.]+$", "")+".png");
    fos.write(exportedImage);
    fos.close();
    }
}

Ännert JPG op PNG mat cURL Kommandoen

Wéi mir Zougang zu REST APIs benotze mat cURL Kommandoen, also an dëser Sektioun exploréiere mir d’Detailer fir JPG op PNG transparent ze konvertéieren. Elo als Viraussetzung musse mir als éischt e JWT Zougang Token generéieren (baséiert op Client Umeldungsinformatiounen) wärend de folgende Kommando ausféiert.

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"

Elo wäerte mir ConvertImage API Uruff benotzen, et erwaart datt den Input JPG scho verfügbar ass an der Cloud Storage. Fëllt elo de folgende Kommando aus fir JPG op PNG z’änneren.

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

Conclusioun

Dësen Artikel huet e puer erstaunlech Detailer zur Verfügung gestallt wéi mir JPG op PNG kënne konvertéieren mat Java Code Snippet. Ähnlech hu mir och d’Schrëtt diskutéiert fir JPG op PNG transparent ze konvertéieren mat cURL Kommandoen. Notéiert w.e.g. datt d’Produktdokumentatioun eng erstaunlech Plaz ass fir iwwer aner spannend Features ze léieren, déi vun der API ugebuede ginn. Am Fall wou Dir dës APIen am Browser ausprobéiere musst, probéiert w.e.g. d’ swagger API Referenz ze benotzen.

W.e.g. notéiert datt all eis Cloud SDKs ënner MIT Lizenz publizéiert ginn, sou datt Dir de komplette Quellcode vum GitHub eroflueden kënnt an et no Ären Ufuerderunge änneren. Schlussendlech, wann Dir Probleemer begéint wärend Dir d’API benotzt, kënnt Dir iwwerleeën eis fir eng séier Léisung iwwer gratis [Produkt Support Forum] ze kommen.

Zesummenhang Artikelen

Besicht w.e.g. déi folgend Linken fir méi iwwer ze léieren: