svg sang png

Chuyển đổi SVG sang PNG trong Java

Một trong những tính năng nổi bật của hình ảnh SVG là chúng có thể mở rộng. Các SVG giữ nguyên chất lượng bất kể chúng đang ở độ phân giải hoặc kích thước màn hình nào. Vì vậy, bạn có thể thiết kế nó ở bất kỳ độ phân giải nào và nó sẽ tăng hoặc giảm kích thước mà không làm giảm chất lượng hoặc bị pixel. Khi so sánh với hình ảnh raster, bạn cần biết kích thước bạn muốn ngay từ đầu, nếu không bạn có thể gặp rủi ro khi làm cho hình ảnh quá lớn hoặc quá nhỏ. Tuy nhiên, vì SVG dựa trên các điểm và đường dẫn thay vì pixel nên chúng không thể hiển thị nhiều chi tiết như các định dạng hình ảnh tiêu chuẩn. Vì vậy, nếu chúng tôi chuyển đổi SVG sang định dạng 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 xây dựng maven).

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

Nếu chúng tôi đã đăng ký trên Aspose Cloud Dashboard, vui lòng lấy thông tin đăng nhập khách hàng của bạn từ Cloud Dashboard. Nếu không, trước tiên bạn cần đăng ký một tài khoản miễn phí trong khi sử dụng địa chỉ email hợp lệ.

Chuyển đổi SVG sang PNG trong Java

API xử lý hình ảnh có khả năng chuyển đổi PNG thành SVG cũng như SVG thành PNG bằng cách sử dụng đoạn mã Java.

  • Trước hết, hãy tạo một đối tượng của ImagingApi bằng thông tin xác thực ứng dụng khách được cá nhân hóa
  • Thứ hai, đọc nội dung của hình ảnh SVG bằng phương thức readAllBytes(…) và truyền vào mảng byte[]
  • Sau đó, tạo một phiên bản UploadFileRequest trong khi chuyển tên SVG và tải 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 chỉ định SNG đầu vào và định dạng hình ảnh kết quả là PNG
  • Gọi phương thức convertImage(…) để chuyển đổi định dạng SVG sang PNG và kết quả đượ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

Đám mây Aspose.Imaging được phát triển theo kiến trúc REST nên chúng ta có thể lưu hình ảnh 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 xác thực 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 để chuyển đổi định dạng SVG sang 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

Sự kết luận

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 đoạn mã Java. Đồng thời, chúng tôi đã khám phá một tùy chọn chuyển đổi SVG sang PNG bằng các lệnh cURL. Ngoài ra, nếu muốn sửa đổi mã nguồn của SDK, bạn có thể tải xuống nếu từ GitHub (tất cả SDK đám mây của chúng tôi đều được phát triển theo giấy phép MIT). Ngoài ra, một trong những tùy chọn thử nghiệm các tính năng hứa hẹn 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 nguồn thông tin tuyệt vời để tìm hiểu về các tính năng thú vị khác do API cung cấp. 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 để được giải quyết nhanh chóng qua miễn phí diễn đàn hỗ trợ sản phẩm.

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

Vui lòng truy cập các liên kết sau để tìm hiểu thêm về: