Foto Duplikat

Finden Sie doppelte Bilder mit Java Cloud SDK

Das JPG-Bild ist ein beliebtes Format zum Drucken und Bearbeiten. Darüber hinaus ist es ein beliebtes Bildformat zum Teilen von Fotos und anderen Bildern im Internet und zwischen Handy- 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. Auf der anderen Seite besteht der größte Vorteil von PNG gegenüber JPEG darin, dass die Komprimierung verlustfrei ist, d. h. es gibt keinen Qualitätsverlust bei jedem Öffnen und erneuten Speichern. PNG verarbeitet auch detaillierte, kontrastreiche Bilder gut. In diesem Artikel werden wir nun die Details zum Konvertieren von JPG in PNG mit Java Cloud SDK besprechen

Bildkonvertierungs-API

Unsere REST-basierte API bietet die Möglichkeit, Bilddateien zu erstellen, zu bearbeiten und in eine Vielzahl von unterstützten Dateiformaten 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 for Java verwenden, da es ein Wrapper um 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>

Nachdem die JDK-Referenz zum 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 jetzt mit dem neu erstellten Konto an und suchen/erstellen Sie die Client-ID und das Client-Geheimnis unter Cloud Dashboard. Diese Angaben werden für Authentifizierungszwecke in den folgenden Abschnitten benötigt.

Konvertieren Sie JPG in PNG in Java

Lassen Sie uns nun die Details besprechen, wie wir JPG mit Java-Code-Snippet in PNG konvertieren können. Um die Konvertierung durchzuführen, haben wir zwei APIs, um ein Bild in ein anderes Format zu konvertieren:

Die GET-API erwartet, dass wir zuerst ein Bild in Cloud Storage hochladen und dann seinen Namen in der API-URL übergeben. Nach dem Aktualisieren der Bildparameter gibt die API das aktualisierte Bild in der Antwort zurück. Wenn Sie das aktualisierte Bild auf dem Cloud-Speicher speichern möchten, müssen Sie dies ausdrücklich tun, wie in den folgenden Beispielen gezeigt.

Andererseits können Sie beim Aufrufen der zweiten POST-API das Bild direkt im Anforderungstext übergeben. Außerdem können Sie das aktualisierte Bild in Cloud Storage speichern, indem Sie den Wert des outPath-Parameters 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 Client-Anmeldeinformationen
  • Lesen Sie alle JPG-Dateien aus dem lokalen Ordner mit dem Objekt File[].
  • Iterieren Sie durch Dateien im Array und erreichen Sie den Inhalt des einzelnen Bildes 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 Antwortstrom zurückgibt
  • Speichern Sie schließlich 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";

// Imaging-Objekt 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());
}

//Stellen Sie hier die erforderlichen Bilderweiterungen ein.
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 der gefilterten Liste hinzu
	acceptedImages.add(file);
                  
    // JPG-Bildinhalt lesen
    byte[] bytes = Files.readAllBytes(acceptedImages.get(counter).toPath());
    
    // Erstellen Sie eine Bildkonvertierungsanforderung 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 Antwortstrom 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 mit cURL-Befehlen 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 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, der erwartet, dass das Eingabe-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

Fazit

Dieser Artikel hat einige erstaunliche Details darüber bereitgestellt, wie wir JPG mit Java-Code-Snippets in PNG konvertieren können. In ähnlicher Weise haben wir auch die Schritte zum Konvertieren von JPG in transparentes PNG mit cURL-Befehlen besprochen. Bitte beachten Sie, dass die Produktdokumentation ein hervorragender Ort ist, um mehr über andere aufregende Funktionen zu erfahren, die von der API angeboten werden. Falls Sie diese APIs im Browser ausprobieren müssen, versuchen Sie es bitte mit der swagger API Reference.

Vorletztes: Bitte beachten Sie, dass alle unsere Cloud-SDKs unter der MIT-Lizenz veröffentlicht werden, Sie können also in Betracht ziehen, den vollständigen Quellcode von GitHub herunterzuladen und ihn gemäß Ihren Anforderungen zu ändern. Wenn Sie bei der Verwendung der API auf Probleme stoßen, können Sie sich schließlich über das kostenlose Produkt-Support-Forum an uns wenden, um eine schnelle Lösung zu erhalten.

In Verbindung stehende Artikel

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