Fotoduplikat

Finden Sie doppelte Bilder mit dem Java Cloud SDK

Das JPG-Bild ist ein beliebtes Format für Druck- und Bearbeitungszwecke. Darüber hinaus ist es ein beliebtes Bildformat zum Teilen von Fotos und anderen Bildern im Internet sowie zwischen Mobil- und PC-Benutzern. Die geringe Dateigröße von JPG-Bildern ermöglicht das Speichern von Tausenden von Bildern auf kleinem Speicherplatz. Da die Komprimierung nun verlustbehaftet ist, bedeutet dies, dass bestimmte unnötige Informationen dauerhaft gelöscht werden. Andererseits besteht der größte Vorteil von PNG gegenüber JPEG darin, dass die Komprimierung verlustfrei ist, was bedeutet, dass es bei jedem Öffnen und erneuten Speichern keinen Qualitätsverlust gibt. PNG verarbeitet auch detaillierte, kontrastreiche Bilder gut. In diesem Artikel besprechen wir nun die Details zum Konvertieren von JPG in PNG mit dem Java Cloud SDK

Bildkonvertierungs-API

Unsere REST-basierte API bietet die Möglichkeit, Bilddateien zu erstellen, zu bearbeiten und in verschiedene unterstützte Dateiformate umzuwandeln. Um nun die Funktion zum Laden und Konvertieren von JPG in transparentes PNG in einer Java-Anwendung zu implementieren, müssen wir Aspose.Imaging Cloud SDK für Java verwenden, da es ein Wrapper für die Cloud-API ist. Der nächste Schritt besteht also darin, seine Referenz im Java-Projekt hinzuzufügen, indem die folgenden Informationen in pom.xml des Maven-Build-Typ-Projekts eingefügt werden.

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

Sobald die JDK-Referenz im Projekt hinzugefügt wurde, besteht der nächste wichtige Schritt darin, ein kostenloses Konto über Aspose Cloud Dashboard zu erstellen. Melden Sie sich einfach über eine gültige E-Mail-Adresse für eine kostenlose Testversion an. Melden Sie sich nun mit dem neu erstellten Konto an und suchen/erstellen Sie die Client-ID und das Client-Geheimnis unter Cloud Dashboard. Diese Angaben werden zur Authentifizierung in den folgenden Abschnitten benötigt.

Konvertieren Sie JPG in PNG in Java

Lassen Sie uns nun die Details besprechen, wie wir JPG mithilfe eines Java-Code-Snippets in PNG konvertieren können. Um die Konvertierung durchzuführen, verfügen wir über zwei APIs, um ein Bild in ein anderes Format zu konvertieren:

Die GET-API erwartet, dass wir zunächst ein Bild in Cloud Storage hochladen und dann seinen Namen in der API-URL übergeben. Nach der Aktualisierung der Bildparameter gibt die API das aktualisierte Bild in der Antwort zurück. Wenn Sie das aktualisierte Bild im Cloud Storage speichern möchten, müssen Sie dies explizit tun, wie in den folgenden Beispielen gezeigt.

Wenn Sie hingegen die zweite POST-API aufrufen, können Sie das Bild direkt im Anforderungstext übergeben. Außerdem können Sie das aktualisierte Bild im Cloud-Speicher speichern, indem Sie den Parameterwert outPath angeben. Wenn Sie den Wert jedoch nicht angeben, enthält die Antwort ein gestreamtes Bild.

  • Erstellen Sie eine Instanz von ImagingApi basierend auf Ihren personalisierten Kundenanmeldeinformationen
  • Lesen Sie alle JPG-Dateien aus dem lokalen Ordner mithilfe des File[]-Objekts
  • Durchlaufen Sie Dateien im Array und erreichen Sie den Inhalt einzelner Bilder in der Byte[]-Instanz
  • Erstellen Sie nun ein Objekt von CreateConvertedImageRequest, in dem wir das Ausgabebildformat als PNG angeben
  • Rufen Sie die Methode createConvertedImage(…) auf, die JPG als PNG speichert und das Ergebnis als Antwortstream zurückgibt
  • Speichern Sie abschließend die PNG-Datei mit dem FileOutputStream-Objekt auf dem lokalen Laufwerk
// Holen Sie sich ClientID und ClientSecret von https://dashboard.aspose.cloud/
String clientId = "7ef10407-c1b7-43bd-9603-5ea9c6db83cd";
String clientSecret = "ba7cc4dc0c0478d7b508dd8ffa029845";

// Bildobjekt erstellen
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);

File directory = new File("/Users/");
//Holen Sie sich alle Dateien aus dem Ordner
File[] allFiles = directory.listFiles();
if (allFiles == null || allFiles.length == 0) {
    throw new RuntimeException("No files present in the directory: " + directory.getAbsolutePath());
}

//Legen Sie hier die erforderlichen Bilderweiterungen fest.
List<String> supportedImageExtensions = Arrays.asList("jpg","jpeg");

int counter =0;
//Gefilterte Liste von JPG-Bilddateien
List<File> acceptedImages = new ArrayList<>();

// Durchlaufen Sie jede aus dem lokalen Ordner gelesene Bilddatei			 
for (File file : allFiles) {
    //Analysieren Sie die Dateierweiterung
    String fileExtension = file.getName().substring(file.getName().lastIndexOf(".") + 1);
	
    //Überprüfen Sie, ob die Erweiterung in den unterstützten ImageExtensions aufgeführt ist
    if (supportedImageExtensions.stream().anyMatch(fileExtension::equalsIgnoreCase)) {
	//Fügen Sie das Bild zur gefilterten Liste hinzu
	acceptedImages.add(file);
                  
    // JPG-Bildinhalte lesen
    byte[] bytes = Files.readAllBytes(acceptedImages.get(counter).toPath());
    
    // Erstellen Sie eine Bildkonvertierungsanfrage mit dem resultierenden Format als PNG
    CreateConvertedImageRequest request = new CreateConvertedImageRequest(bytes, "PNG", null, null);
    
    // Konvertieren Sie JPG in PNG und geben Sie die resultierende Datei im Antwortstream zurück
    byte[] exportedImage = imageApi.createConvertedImage(request);
    
    // Exportiertes Bild im lokalen Speicher speichern
    FileOutputStream fos = new FileOutputStream(directory + "/"+file.getName().replaceFirst("[.][^.]+$", "")+".png");
    fos.write(exportedImage);
    fos.close();
    }
}

Ändern Sie JPG mit cURL-Befehlen in PNG

Da wir über cURL-Befehle auf REST-APIs zugreifen können, untersuchen wir in diesem Abschnitt die Details zum Konvertieren von JPG in transparentes PNG. Als Voraussetzung müssen wir nun zunächst ein JWT-Zugriffstoken (basierend auf den Client-Anmeldeinformationen) generieren, während wir den folgenden Befehl ausführen.

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"

Jetzt verwenden wir den ConvertImage-API-Aufruf. Er geht davon aus, dass das eingegebene JPG bereits im Cloud-Speicher verfügbar ist. Führen Sie nun bitte den folgenden Befehl aus, um JPG in PNG zu ändern.

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

Abschluss

In diesem Artikel finden Sie einige erstaunliche Details dazu, wie wir mithilfe eines Java-Code-Snippets JPG in PNG konvertieren können. In ähnlicher Weise haben wir auch die Schritte zum Konvertieren von JPG in transparentes PNG mithilfe von cURL-Befehlen besprochen. Bitte beachten Sie, dass die Produktdokumentation ein großartiger Ort ist, um mehr über andere spannende Funktionen zu erfahren, die die API bietet. Falls Sie diese APIs im Browser ausprobieren müssen, versuchen Sie es bitte mit der Swagger API Reference.

Bitte beachten Sie vorab, dass alle unsere Cloud SDKs unter MIT-Lizenz veröffentlicht werden. Sie können daher den vollständigen Quellcode von GitHub herunterladen und ihn entsprechend Ihren Anforderungen ändern. Wenn Sie bei der Verwendung der API auf Probleme stoßen, können Sie sich über das kostenlose Produkt-Support-Forum an uns wenden, um eine schnelle Lösung zu finden.

In Verbindung stehende Artikel

Bitte besuchen Sie die folgenden Links, um mehr darüber zu erfahren: