foto duplikat

Find dublerede billeder ved hjælp af Java Cloud SDK

JPG-billedet er et populært format til udskrivning og redigering. Desuden er det et populært billedformat til deling af fotos og andre billeder på internettet og mellem mobil- og pc-brugere. Den lille filstørrelse på JPG-billeder gør det muligt at gemme tusindvis af billeder i lille hukommelsesplads. Nu da komprimeringen er tabsgivende, betyder det, at visse unødvendige oplysninger slettes permanent. På den anden ende er den største fordel ved PNG i forhold til JPEG, at komprimeringen er tabsfri, hvilket betyder, at der ikke er noget tab i kvalitet, hver gang den åbnes og gemmes igen. PNG håndterer også detaljerede billeder med høj kontrast godt. Nu i denne artikel skal vi diskutere detaljerne om, hvordan man konverterer JPG til PNG ved hjælp af Java Cloud SDK

Image Conversion API

Vores REST-baserede API tilbyder mulighederne for at oprette, redigere og transformere billedfiler til forskellige understøttede filformater. For nu at implementere funktionen til at indlæse og konvertere jpg til png transparent i Java-applikationen, skal vi bruge Aspose.Imaging Cloud SDK for Java, da det er en indpakning omkring Cloud API. Så det næste trin er at tilføje dens reference i java-projektet ved at inkludere følgende oplysninger i pom.xml af maven build type project.

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

Når JDK-referencen er blevet tilføjet i projektet, er det næste vigtige skridt at oprette en gratis konto over Aspose Cloud Dashboard. Du skal blot tilmelde dig en gratis prøveperiode via en gyldig e-mailadresse. Log nu ind med en nyoprettet konto, og find/opret klient-id og klienthemmelighed på Cloud Dashboard. Disse oplysninger er nødvendige for godkendelsesformål i de følgende afsnit.

Konverter JPG til PNG i Java

Lad os nu diskutere detaljerne om, hvordan vi kan konvertere JPG til PNG ved hjælp af Java-kodestykke. For at udføre konverteringen har vi to API’er til at konvertere et billede til et andet format:

GET API forventer, at vi først uploader et billede til Cloud Storage og derefter sender dets navn i API URL’en. Efter opdatering af billedparametrene returnerer API’en det opdaterede billede i svaret. Hvis du gerne vil gemme det opdaterede billede på Cloud Storage, skal du udtrykkeligt gøre dette som vist i nedenstående eksempler.

På den anden side, når du kalder den anden POST API, kan du sende billedet direkte i anmodningsteksten. Det lader dig også gemme det opdaterede billede på Cloud Storage ved at angive outPath-parameterværdien. Men hvis du ikke angiver værdien, indeholder svaret et streamet billede.

  • Opret en forekomst af ImagingApi baseret på dine personlige klientoplysninger
  • Læs alle JPG-filer fra den lokale mappe ved hjælp af File[]-objektet
  • Gentag gennem filer i array og nå indholdet af det enkelte billede til byte[]-instans
  • Opret nu et objekt af CreateConvertedImageRequest, hvor vi angiver output-billedformatet som PNG
  • Kald metoden createConvertedImage(…), som gemmer JPG som PNG og returnerer resultatet som svarstrøm
  • Gem endelig PNG-filen på det lokale drev ved hjælp af FileOutputStream-objektet
// Hent ClientID og ClientSecret fra https://dashboard.aspose.cloud/
String clientId = "7ef10407-c1b7-43bd-9603-5ea9c6db83cd";
String clientSecret = "ba7cc4dc0c0478d7b508dd8ffa029845";

// oprette billedobjekt
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);

File directory = new File("/Users/");
//Hent alle filerne fra mappen
File[] allFiles = directory.listFiles();
if (allFiles == null || allFiles.length == 0) {
    throw new RuntimeException("No files present in the directory: " + directory.getAbsolutePath());
}

//Indstil de nødvendige billedudvidelser her.
List<String> supportedImageExtensions = Arrays.asList("jpg","jpeg");

int counter =0;
//Filtreret liste over JPG-billedfiler
List<File> acceptedImages = new ArrayList<>();

// Gentag gennem hver billedfil læst fra den lokale mappe			 
for (File file : allFiles) {
    //Parse filtypenavnet
    String fileExtension = file.getName().substring(file.getName().lastIndexOf(".") + 1);
	
    //Tjek, om udvidelsen er angivet i de understøttede billedudvidelser
    if (supportedImageExtensions.stream().anyMatch(fileExtension::equalsIgnoreCase)) {
	//Tilføj billedet til den filtrerede liste
	acceptedImages.add(file);
                  
    // læse JPG billedindhold
    byte[] bytes = Files.readAllBytes(acceptedImages.get(counter).toPath());
    
    // oprette billedkonverteringsanmodning med resulterende format som PNG
    CreateConvertedImageRequest request = new CreateConvertedImageRequest(bytes, "PNG", null, null);
    
    // konverter JPG til PNG og returner den resulterende fil som svarstrøm
    byte[] exportedImage = imageApi.createConvertedImage(request);
    
    // Gem det eksporterede billede på lokalt lager
    FileOutputStream fos = new FileOutputStream(directory + "/"+file.getName().replaceFirst("[.][^.]+$", "")+".png");
    fos.write(exportedImage);
    fos.close();
    }
}

Skift JPG til PNG ved hjælp af cURL-kommandoer

Da vi kan få adgang til REST API’er ved hjælp af cURL-kommandoer, så i dette afsnit udforsker vi detaljerne for at konvertere JPG til PNG transparent. Nu som en forudsætning skal vi først generere et JWT-adgangstoken (baseret på klientoplysninger), mens vi udfører følgende kommando.

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"

Nu skal vi bruge ConvertImage API-kald, det forventer, at input JPG allerede er tilgængelig i cloud storage. Udfør nu følgende kommando for at ændre JPG til 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

Konklusion

Denne artikel har givet nogle fantastiske detaljer om, hvordan vi kan konvertere JPG til PNG ved hjælp af Java-kodestykke. På samme måde har vi også diskuteret trinene til at konvertere JPG til PNG transparent ved hjælp af cURL-kommandoer. Bemærk venligst, at Produktdokumentation er et fantastisk sted at lære om andre spændende funktioner, der tilbydes af API. Hvis du har brug for at prøve disse API’er i browseren, så prøv venligst at bruge swagger API Reference.

Næstsidste, bemærk venligst, at alle vores Cloud SDK’er er udgivet under MIT-licens, så du kan overveje at downloade den komplette kildekode fra GitHub og ændre den i henhold til dine krav. Til sidst, hvis du støder på problemer, mens du bruger API’en, kan du overveje at kontakte os for en hurtig løsning via gratis produktsupportforum.

relaterede artikler

Besøg venligst følgende links for at lære mere om: