duplikat zdjęcia

Znajdź zduplikowane obrazy za pomocą Java Cloud SDK

Obraz JPG jest popularnym formatem do drukowania i edycji. Ponadto jest to popularny format obrazu do udostępniania zdjęć i innych obrazów w Internecie oraz między użytkownikami telefonów komórkowych i komputerów PC. Mały rozmiar plików obrazów JPG umożliwia przechowywanie tysięcy obrazów na małej przestrzeni pamięci. Teraz, gdy kompresja jest stratna, oznacza to, że niektóre niepotrzebne informacje są trwale usuwane. Z drugiej strony największą przewagą PNG nad JPEG jest to, że kompresja jest bezstratna, co oznacza, że nie ma utraty jakości przy każdym otwarciu i ponownym zapisaniu. PNG dobrze radzi sobie również ze szczegółowymi obrazami o wysokim kontraście. Teraz w tym artykule omówimy szczegóły konwertowania JPG na PNG za pomocą Java Cloud SDK

Interfejs API konwersji obrazu

Nasz interfejs API oparty na REST oferuje możliwości tworzenia, edytowania i przekształcania plików graficznych w różne obsługiwane formaty plików. Teraz, aby zaimplementować funkcję wczytywania i konwertowania przezroczystego formatu jpg na png w aplikacji Java, musimy użyć Aspose.Imaging Cloud SDK for Java, ponieważ jest to opakowanie wokół Cloud API. Następnym krokiem jest dodanie jego odniesienia do projektu java poprzez uwzględnienie następujących informacji w pliku pom.xml projektu typu maven build.

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

Po dodaniu referencji JDK do projektu kolejnym ważnym krokiem jest utworzenie bezpłatnego konta na Aspose Cloud Dashboard. Po prostu zarejestruj się, aby uzyskać bezpłatną wersję próbną, korzystając z prawidłowego adresu e-mail. Teraz zaloguj się przy użyciu nowo utworzonego konta i wyszukaj/utwórz identyfikator klienta i klucz tajny klienta w Cloud Dashboard. Dane te są wymagane do celów uwierzytelniania w poniższych sekcjach.

Konwertuj JPG na PNG w Javie

Teraz omówmy szczegóły, w jaki sposób możemy przekonwertować JPG na PNG za pomocą fragmentu kodu Java. Aby wykonać konwersję, mamy dwa interfejsy API do konwersji obrazu do innego formatu:

Interfejs API GET oczekuje, że najpierw prześlemy obraz do Cloud Storage, a następnie przekażemy jego nazwę w adresie URL interfejsu API. Po zaktualizowaniu parametrów obrazu API zwraca zaktualizowany obraz w odpowiedzi. Jeśli chcesz zapisać zaktualizowany obraz w Cloud Storage, musisz to wyraźnie zrobić, jak pokazano w poniższych przykładach.

Z drugiej strony, wywołując drugie API POST, możesz bezpośrednio przekazać obraz w treści żądania. Pozwala także zapisać zaktualizowany obraz w Cloud Storage, określając wartość parametru outPath. Jeśli jednak nie określisz wartości, odpowiedź będzie zawierała obraz przesyłany strumieniowo.

  • Utwórz instancję ImagingApi w oparciu o spersonalizowane poświadczenia klienta
  • Odczytaj wszystkie pliki JPG z folderu lokalnego za pomocą obiektu File[].
  • Iteruj pliki w tablicy i sięgaj do zawartości pojedynczego obrazu do instancji byte[].
  • Teraz utwórz obiekt CreateConvertedImageRequest, w którym określimy format obrazu wyjściowego jako PNG
  • Wywołaj metodę createConvertedImage(…), która zapisuje JPG jako PNG i zwraca wynik jako strumień odpowiedzi
  • Na koniec zapisz plik PNG na dysku lokalnym za pomocą obiektu FileOutputStream
// Uzyskaj ClientID i ClientSecret z https://dashboard.aspose.cloud/
String clientId = "7ef10407-c1b7-43bd-9603-5ea9c6db83cd";
String clientSecret = "ba7cc4dc0c0478d7b508dd8ffa029845";

// utwórz obiekt Imaging
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);

File directory = new File("/Users/");
//Pobierz wszystkie pliki z folderu
File[] allFiles = directory.listFiles();
if (allFiles == null || allFiles.length == 0) {
    throw new RuntimeException("No files present in the directory: " + directory.getAbsolutePath());
}

//Ustaw tutaj wymagane rozszerzenia graficzne.
List<String> supportedImageExtensions = Arrays.asList("jpg","jpeg");

int counter =0;
//Filtrowana lista plików graficznych JPG
List<File> acceptedImages = new ArrayList<>();

// Przejrzyj każdy plik obrazu odczytany z folderu lokalnego			 
for (File file : allFiles) {
    //Przeanalizuj rozszerzenie pliku
    String fileExtension = file.getName().substring(file.getName().lastIndexOf(".") + 1);
	
    //Sprawdź, czy rozszerzenie znajduje się na liście obsługiwanych rozszerzeń obrazu
    if (supportedImageExtensions.stream().anyMatch(fileExtension::equalsIgnoreCase)) {
	//Dodaj obraz do przefiltrowanej listy
	acceptedImages.add(file);
                  
    // przeczytaj zawartość obrazu JPG
    byte[] bytes = Files.readAllBytes(acceptedImages.get(counter).toPath());
    
    // utwórz żądanie konwersji obrazu z formatem wynikowym jako PNG
    CreateConvertedImageRequest request = new CreateConvertedImageRequest(bytes, "PNG", null, null);
    
    // przekonwertuj JPG na PNG i zwróć wynikowy plik w strumieniu odpowiedzi
    byte[] exportedImage = imageApi.createConvertedImage(request);
    
    // Zapisz wyeksportowany obraz w pamięci lokalnej
    FileOutputStream fos = new FileOutputStream(directory + "/"+file.getName().replaceFirst("[.][^.]+$", "")+".png");
    fos.write(exportedImage);
    fos.close();
    }
}

Zmień JPG na PNG za pomocą poleceń cURL

Ponieważ możemy uzyskać dostęp do interfejsów API REST za pomocą poleceń cURL, w tej sekcji omawiamy szczegóły konwersji formatu JPG na format PNG. Teraz jako warunek wstępny musimy najpierw wygenerować token dostępu JWT (na podstawie poświadczeń klienta) podczas wykonywania następującego polecenia.

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"

Teraz użyjemy wywołania API ConvertImage, które oczekuje, że wejściowy JPG będzie już dostępny w chmurze. Teraz wykonaj następujące polecenie, aby zmienić JPG na 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

Wniosek

Ten artykuł zawiera niesamowite szczegóły dotyczące tego, jak możemy przekonwertować JPG na PNG za pomocą fragmentu kodu Java. Podobnie omówiliśmy również kroki konwersji JPG na przezroczysty PNG za pomocą poleceń cURL. Należy pamiętać, że Dokumentacja produktu to niesamowite miejsce, w którym można dowiedzieć się o innych ekscytujących funkcjach oferowanych przez interfejs API. Jeśli chcesz wypróbować te interfejsy API w przeglądarce, spróbuj użyć Swagger API Reference.

Przedostatni, pamiętaj, że wszystkie nasze Cloud SDK są publikowane na licencji MIT, więc możesz rozważyć pobranie pełnego kodu źródłowego z GitHub i zmodyfikowanie go zgodnie z własnymi wymaganiami. Na koniec, jeśli napotkasz jakiekolwiek problemy podczas korzystania z interfejsu API, możesz rozważyć skontaktowanie się z nami w celu szybkiego rozwiązania za pośrednictwem bezpłatnego forum wsparcia produktu.

Powiązane artykuły

Odwiedź poniższe linki, aby dowiedzieć się więcej o: