Obrazy SVG wyróżniają się, ponieważ są skalowalne i zachowują tę samą jakość, niezależnie od rozmiaru czy rozdzielczości ekranu. Można je projektować w dowolnej rozdzielczości i zwiększać/zmniejszać, bez utraty jakości (lub pikselizacji). Ale ponieważ obrazy SVG są oparte na punktach i ścieżkach, a więc zamiast na pikselach, nie mogą wyświetlać tylu szczegółów, co obraz rastrowy. Tak więc, jeśli przekonwertujemy obraz SVG na obraz PNG, te problemy można rozwiązać.
- Interfejs API konwersji SVG na PNG
- Konwertuj SVG na PNG w Javie
- Zapisz SVG jako PNG za pomocą poleceń cURL
Interfejs API konwersji SVG na PNG
W tym artykule użyjemy Aspose.Imaging Cloud SDK for Java, który jest opartym na REST interfejsem API oferującym możliwości programowej edycji, manipulacji i przekształcania rastrów, metaplików, photoshopa do różnych obsługiwanych formatów. Obsługuje również funkcję konwersji SVG na PNG online. Teraz, aby rozpocząć korzystanie z SDK, musimy dodać jego referencję do naszego projektu Java, umieszczając następujące informacje w pom.xml (projekt typu kompilacji maven).
<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>
Teraz, aby korzystać z interfejsu API, potrzebujemy naszych spersonalizowanych danych uwierzytelniających klienta. Można je łatwo uzyskać, jeśli jesteś już zarejestrowany w Aspose Cloud Dashboard. W przeciwnym razie zarejestruj bezpłatne konto za pomocą ważnego adresu e-mail i uzyskaj dane uwierzytelniające klienta.
Konwertuj SVG na PNG w Javie
Nasz interfejs API przetwarzania obrazu jest w stanie przekonwertować PNG na SVG i SVG na PNG przy minimalnej liczbie wierszy kodu. W tej sekcji omówimy wszystkie szczegóły konwersji SVG na PNG przy użyciu Javy.
- Przede wszystkim tworzymy obiekt klasy ImagingApi, w którym jako argument przekazujemy poświadczenia klienta
- Po drugie, przeczytaj zawartość obrazu SVG metodą readAllBytes(…) i zwróć ją do tablicy byte[]
- Następnie utwórz instancję UploadFileRequest, przekazując nazwę SVG i prześlij ją do magazynu w chmurze za pomocą metody uploadFile(…)
- Teraz utwórz obiekt ConvertImageRequest, w którym przekazujemy wejściową nazwę SNG i wynikowy format jako „PNG”
- Wywołaj metodę convertImage(…), aby zainicjować konwersję SVG do PNG. Dane wyjściowe są następnie zwracane jako strumień odpowiedzi
- Na koniec zapisz wynikowy 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);
// załaduj obraz SVG z systemu lokalnego
File file1 = new File("File_Extension Icons.svg");
byte[] imageStream = Files.readAllBytes(file1.toPath());
// utwórz obiekt żądania przesłania pliku
UploadFileRequest uploadRequest = new UploadFileRequest("input.svg",imageStream,null);
// prześlij obraz SVG do magazynu w chmurze
imageApi.uploadFile(uploadRequest);
// określić format wyjściowy obrazu
String format = "PNG";
// Utwórz obiekt żądania konwersji obrazu
ConvertImageRequest convertImage = new ConvertImageRequest("input.svg", format, null, null);
// przekonwertuj SVG na PNG i zwróć obraz w strumieniu odpowiedzi
byte[] resultantImage = imageApi.convertImage(convertImage);
// Zapisz obraz PNG w pamięci lokalnej
FileOutputStream fos = new FileOutputStream("/Users/nayyer/Documents/" + "Converted.png");
fos.write(resultantImage);
fos.close();
Wejściowy obraz SVG użyty w powyższym przykładzie można pobrać z FileExtension Icons.svg.
Zapisz SVG jako PNG za pomocą poleceń cURL
Ponieważ Aspose.Imaging Cloud jest rozwijany zgodnie z architekturą REST, można go łatwo uzyskać za pomocą poleceń cURL. W tej sekcji zapiszemy SVG jako PNG za pomocą poleceń cURL. Teraz pierwszym krokiem jest wygenerowanie tokena dostępu JWT (na podstawie poświadczeń klienta) za pomocą 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"
Po wygenerowaniu tokena JWT wykonaj następujące polecenie, aby zapisać SVG jako obraz PNG.
curl -v -X GET "https://api.aspose.cloud/v3.0/imaging/input.svg/convert?format=PNG" \
-H "accept: application/json" \
-H "authorization: Bearer <JWT Token>" \
-o Resultant.png
Wniosek
Pod koniec tego artykułu poznaliśmy szczegóły, w jaki sposób możemy przekonwertować SVG na PNG za pomocą Javy. Jednocześnie zbadaliśmy również opcję konwersji SVG do PNG za pomocą poleceń cURL. Ponadto, jeśli chcesz zdobyć kod źródłowy SDK i zmodyfikować go zgodnie ze swoimi wymaganiami, możesz go pobrać z GitHub (nasze Cloud SDK są rozwijane na licencji MIT). Pamiętaj, że inną opcją testowania niesamowitych funkcji interfejsu API jest użycie SwaggerUI w przeglądarce internetowej.
Niemniej jednak Dokumentacja produktu to wspaniałe repozytorium artykułów wyjaśniających inne ekscytujące funkcje interfejsu API. Wreszcie, w przypadku napotkania jakichkolwiek problemów podczas korzystania z interfejsu API, możesz rozważyć skontaktowanie się z nami za pośrednictwem bezpłatnego forum wsparcia produktu.
Powiązane artykuły
Zdecydowanie zalecamy odwiedzenie poniższych łączy, aby dowiedzieć się więcej o: