svg sang png

Chuyển đổi SVG sang PNG trong Java

Hình ảnh SVG nổi bật vì chúng có thể mở rộng và duy trì chất lượng như nhau, bất kể kích thước hay độ phân giải màn hình. Chúng có thể được thiết kế ở bất kỳ độ phân giải nào và chúng có thể tăng/giảm kích thước mà không làm giảm chất lượng (hoặc bị pixel hóa). Tuy nhiên, vì hình ảnh SVG dựa trên điểm & đường dẫn, thay vì pixel, nên chúng không thể hiển thị nhiều chi tiết như hình ảnh raster. Vì vậy, nếu chúng tôi chuyển đổi hình ảnh SVG thành PNG, những vấn đề này có thể được giải quyết.

API chuyển đổi SVG sang PNG

Trong bài viết này, chúng ta sẽ sử dụng Aspose.Imaging Cloud SDK for Java là API dựa trên REST cung cấp khả năng chỉnh sửa, thao tác và biến đổi raster, siêu tệp, photoshop theo chương trình sang nhiều Định dạng được hỗ trợ. Nó cũng hỗ trợ tính năng chuyển đổi SVG sang PNG trực tuyến. Bây giờ, để bắt đầu sử dụng SDK, chúng ta cần thêm tham chiếu của nó vào dự án Java của mình bằng cách đưa thông tin sau vào pom.xml (dự án kiểu bản dựng 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>

Bây giờ để sử dụng API, chúng tôi cần thông tin đăng nhập khách hàng được cá nhân hóa của mình. Có thể dễ dàng lấy chúng nếu bạn đã đăng ký trên Aspose Cloud Dashboard. Nếu không, hãy đăng ký một tài khoản miễn phí thông qua một địa chỉ email hợp lệ và nhận thông tin đăng nhập khách hàng của bạn.

Chuyển đổi SVG sang PNG trong Java

API xử lý hình ảnh của chúng tôi có khả năng chuyển đổi PNG thành SVG và SVG thành PNG với các dòng mã tối thiểu. Vì vậy, trong phần này, chúng ta sẽ thảo luận về tất cả các chi tiết để chuyển đổi SVG sang PNG bằng Java.

  • Trước hết, hãy tạo một đối tượng của lớp ImagingApi nơi chúng tôi chuyển thông tin đăng nhập của ứng dụng khách làm đối số
  • Thứ hai, đọc nội dung của hình ảnh SVG bằng phương thức readAllBytes(…) và trả về mảng byte[]
  • Sau đó, tạo một phiên bản của UploadFileRequest trong khi chuyển tên SVG và tải nó lên bộ nhớ đám mây bằng phương thức uploadFile(…)
  • Bây giờ hãy tạo một đối tượng ConvertImageRequest, nơi chúng tôi chuyển tên SNG đầu vào và định dạng kết quả là “PNG”
  • Gọi phương thức convertImage(…) để bắt đầu chuyển đổi SVG sang PNG. Đầu ra sau đó được trả về dưới dạng luồng phản hồi
  • Cuối cùng, lưu PNG kết quả vào ổ đĩa cục bộ bằng đối tượng FileOutputStream
// Nhận ClientID và ClientSecret từ https://dashboard.aspose.cloud/
String clientId = "7ef10407-c1b7-43bd-9603-5ea9c6db83cd";
String clientSecret = "ba7cc4dc0c0478d7b508dd8ffa029845";

// tạo đối tượng hình ảnh
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);

// tải hình ảnh SVG từ hệ thống cục bộ
File file1 = new File("File_Extension Icons.svg");
byte[] imageStream = Files.readAllBytes(file1.toPath());
			
// tạo đối tượng yêu cầu tải tệp lên
UploadFileRequest uploadRequest = new UploadFileRequest("input.svg",imageStream,null);
// tải hình ảnh SVG lên bộ nhớ Đám mây
imageApi.uploadFile(uploadRequest);

// chỉ định định dạng đầu ra của hình ảnh
String format = "PNG";

// Tạo đối tượng yêu cầu chuyển đổi hình ảnh
ConvertImageRequest convertImage = new ConvertImageRequest("input.svg", format, null, null);
// chuyển đổi SVG sang PNG và trả về hình ảnh trong luồng phản hồi
byte[] resultantImage = imageApi.convertImage(convertImage);

// Lưu hình ảnh PNG vào bộ nhớ cục bộ
FileOutputStream fos = new FileOutputStream("/Users/nayyer/Documents/" + "Converted.png");
fos.write(resultantImage);
fos.close();

Có thể tải xuống hình ảnh SVG đầu vào được sử dụng trong ví dụ trên từ FileExtension Icons.svg.

svg sang png

Hình ảnh:- chuyển đổi svg sang png Xem trước trực tuyến

Lưu SVG dưới dạng PNG bằng Lệnh cURL

Vì Aspose.Imaging Cloud được phát triển theo kiến trúc REST nên có thể dễ dàng truy cập thông qua các lệnh cURL. Vì vậy, trong phần này, chúng ta sẽ lưu SVG dưới dạng PNG bằng các lệnh cURL. Bây giờ, bước đầu tiên là tạo mã thông báo truy cập JWT (dựa trên thông tin đăng nhập của khách hàng) bằng cách sử dụng lệnh sau.

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"

Khi mã thông báo JWT được tạo, vui lòng thực hiện lệnh sau để lưu SVG dưới dạng hình ảnh 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

Phần kết luận

Đến cuối bài viết này, chúng tôi đã tìm hiểu chi tiết về cách chúng tôi có thể chuyển đổi SVG sang PNG bằng Java. Đồng thời, chúng tôi cũng đã khám phá một tùy chọn chuyển đổi SVG sang PNG bằng các lệnh cURL. Hơn nữa, nếu bạn muốn lấy mã nguồn SDK và sửa đổi nó theo yêu cầu của mình, bạn có thể tải xuống từ GitHub (SDK đám mây của chúng tôi được phát triển theo giấy phép MIT). Xin lưu ý rằng một tùy chọn khác để kiểm tra các tính năng tuyệt vời của API là thông qua SwaggerUI trong trình duyệt web.

Tuy nhiên, Tài liệu sản phẩm là một kho lưu trữ tuyệt vời các bài viết giải thích các tính năng thú vị khác của API. Cuối cùng, trong trường hợp bạn gặp phải bất kỳ sự cố nào khi sử dụng API, bạn có thể cân nhắc liên hệ với chúng tôi qua [diễn đàn hỗ trợ sản phẩm] miễn phí]9.

Những bài viết liên quan

Chúng tôi thực sự khuyên bạn nên truy cập các liên kết sau để tìm hiểu thêm về: