De afbeelding JPG is een populair formaat voor print- en bewerkingsdoeleinden. Bovendien is het een populair afbeeldingsformaat voor het delen van foto’s en andere afbeeldingen op internet en tussen mobiele en pc-gebruikers. Door de kleine bestandsgrootte van JPG-afbeeldingen kunnen duizenden afbeeldingen in een kleine geheugenruimte worden opgeslagen. Nu de compressie lossy is, betekent dit dat bepaalde onnodige informatie permanent wordt verwijderd. Aan de andere kant is het grootste voordeel van PNG ten opzichte van JPEG dat de compressie verliesvrij is, wat betekent dat er geen kwaliteitsverlies is telkens wanneer het wordt geopend en opnieuw wordt opgeslagen. PNG kan ook goed omgaan met gedetailleerde afbeeldingen met hoog contrast. In dit artikel gaan we de details bespreken over het converteren van JPG naar PNG met Java Cloud SDK
Beeldconversie-API
Onze op REST gebaseerde API biedt de mogelijkheid om afbeeldingsbestanden te maken, te bewerken en te transformeren naar verschillende ondersteunde bestandsindelingen. Om de functie voor het laden en converteren van jpg naar png transparant in de Java-toepassing te implementeren, moeten we nu Aspose.Imaging Cloud SDK voor Java gebruiken, aangezien het een wrapper rond Cloud API is. Dus de volgende stap is om de referentie in het java-project toe te voegen door de volgende informatie op te nemen in pom.xml van het maven build-type project.
<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>
Zodra de JDK-referentie in het project is toegevoegd, is de volgende belangrijke stap het maken van een gratis account via Aspose Cloud Dashboard. Meld u eenvoudig aan voor een gratis proefperiode via een geldig e-mailadres. Log nu in met een nieuw aangemaakt account en zoek/maak Client ID en Client Secret op bij Cloud Dashboard. Deze details zijn vereist voor authenticatiedoeleinden in de volgende secties.
Converteer JPG naar PNG in Java
Laten we nu de details bespreken over hoe we JPG naar PNG kunnen converteren met behulp van een Java-codefragment. Om de conversie uit te voeren, hebben we twee API’s om een afbeelding naar een ander formaat te converteren:
De GET API verwacht van ons dat we eerst een afbeelding uploaden naar Cloud Storage en vervolgens de naam doorgeven in de API-URL. Na het bijwerken van de afbeeldingsparameters retourneert de API de bijgewerkte afbeelding in het antwoord. Als u de bijgewerkte afbeelding op de Cloud Storage wilt opslaan, moet u dit expliciet doen zoals weergegeven in de onderstaande voorbeelden.
Aan de andere kant, wanneer u de tweede POST API aanroept, kunt u de afbeelding rechtstreeks doorgeven aan de aanvraagtekst. Hiermee kunt u ook de bijgewerkte afbeelding op de Cloud Storage opslaan door de outPath-parameterwaarde op te geven. Als u echter geen waarde opgeeft, bevat het antwoord een gestreamde afbeelding.
- Maak een exemplaar van ImagingApi op basis van uw gepersonaliseerde klantreferenties
- Lees alle JPG-bestanden uit de lokale map met behulp van het File[]-object
- Doorloop bestanden in een array en bereik de inhoud van een individuele afbeelding in een byte[]-instantie
- Maak nu een object van CreateConvertedImageRequest waarin we het uitvoerbeeldformaat specificeren als PNG
- Roep de methode createConvertedImage(…) aan die JPG opslaat als PNG en het resultaat retourneert als responsstroom
- Sla ten slotte het PNG-bestand op de lokale schijf op met behulp van het FileOutputStream-object
// Haal ClientID en ClientSecret op van https://dashboard.aspose.cloud/
String clientId = "7ef10407-c1b7-43bd-9603-5ea9c6db83cd";
String clientSecret = "ba7cc4dc0c0478d7b508dd8ffa029845";
// Imaging-object maken
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);
File directory = new File("/Users/");
//Haal alle bestanden uit de map
File[] allFiles = directory.listFiles();
if (allFiles == null || allFiles.length == 0) {
throw new RuntimeException("No files present in the directory: " + directory.getAbsolutePath());
}
//Stel hier de gewenste beeldextensies in.
List<String> supportedImageExtensions = Arrays.asList("jpg","jpeg");
int counter =0;
//Gefilterde lijst met JPG-afbeeldingsbestanden
List<File> acceptedImages = new ArrayList<>();
// Doorloop elk afbeeldingsbestand dat uit de lokale map is gelezen
for (File file : allFiles) {
//Parseer de bestandsextensie
String fileExtension = file.getName().substring(file.getName().lastIndexOf(".") + 1);
//Controleer of de extensie wordt vermeld in de ondersteundeImageExtensions
if (supportedImageExtensions.stream().anyMatch(fileExtension::equalsIgnoreCase)) {
//Voeg de afbeelding toe aan de gefilterde lijst
acceptedImages.add(file);
// lees JPG-afbeeldingsinhoud
byte[] bytes = Files.readAllBytes(acceptedImages.get(counter).toPath());
// maak een afbeeldingsconversieverzoek met resulterende indeling als PNG
CreateConvertedImageRequest request = new CreateConvertedImageRequest(bytes, "PNG", null, null);
// converteer JPG naar PNG en retourneer het resulterende bestand in de responsstroom
byte[] exportedImage = imageApi.createConvertedImage(request);
// Sla geëxporteerde afbeelding op naar lokale opslag
FileOutputStream fos = new FileOutputStream(directory + "/"+file.getName().replaceFirst("[.][^.]+$", "")+".png");
fos.write(exportedImage);
fos.close();
}
}
Wijzig JPG in PNG met behulp van cURL-opdrachten
Omdat we toegang hebben tot REST API’s met behulp van cURL-opdrachten, onderzoeken we in deze sectie de details om JPG naar transparante PNG te converteren. Nu moeten we als eerste vereiste eerst een JWT-toegangstoken genereren (op basis van clientreferenties) terwijl we de volgende opdracht uitvoeren.
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 gaan we de ConvertImage API-aanroep gebruiken, het verwacht dat de invoer-JPG al beschikbaar is in cloudopslag. Voer nu de volgende opdracht uit om JPG naar PNG te wijzigen.
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
Conclusie
Dit artikel heeft een aantal verbazingwekkende details gegeven over hoe we JPG naar PNG kunnen converteren met behulp van een Java-codefragment. Evenzo hebben we ook de stappen besproken om JPG naar transparante PNG te converteren met behulp van cURL-opdrachten. Houd er rekening mee dat de Productdocumentatie een geweldige plek is om meer te weten te komen over andere opwindende functies die door de API worden aangeboden. Als je deze API’s in de browser wilt uitproberen, probeer dan de swagger API Reference.
Voorlaatste, houd er rekening mee dat al onze Cloud SDK’s worden gepubliceerd onder MIT-licentie, dus u kunt overwegen de volledige broncode te downloaden van GitHub en deze aan te passen volgens uw vereisten. Als u ten slotte problemen ondervindt tijdens het gebruik van de API, kunt u overwegen ons te benaderen voor een snelle oplossing via het gratis productondersteuningsforum.
gerelateerde artikelen
Bezoek de volgende links voor meer informatie over: