SVG (Đồ họa vectơ có thể mở rộng) là định dạng hình ảnh vectơ dựa trên XML để xác định đồ họa hai chiều có hỗ trợ hoạt ảnh. Những hình ảnh này chủ yếu được sử dụng trên web vì mật độ pixel cao. Mặt khác, các tính năng phong phú cũng giúp tăng kích thước của hình ảnh SVG so với hình ảnh PNG có cùng kích thước. Sự khác biệt như vậy khiến các nhà phát triển nghĩ đến việc chuyển đổi hình ảnh từ định dạng này sang định dạng khác. Bài viết này thảo luận về cách chuyển đổi vectơ SVG thành hình ảnh PNG trong Java.

Chuyển đổi SVG sang PNG trong Java (Thang độ xám, Xoay, Lật, Sáng, Hình mờ)

API Java để chuyển đổi hình ảnh

GroupDocs.Conversion giới thiệu tài liệu & API chuyển đổi hình ảnh dành cho nhà phát triển Java. Nó hỗ trợ một danh sách lớn các định dạng hình ảnh để chuyển đổi từ định dạng này sang định dạng khác. Ngoài ra, kết quả chuyển đổi cũng có thể được tùy chỉnh bằng các tùy chọn nâng cao có sẵn. Tôi sẽ sử dụng API này, GroupDocs.Conversion for Java để chuyển đổi đồ họa vector SVG thành định dạng hình ảnh PNG.

Tải xuống hoặc định cấu hình

Bạn có thể tải xuống tệp JAR từ phần tải xuống hoặc chỉ nhận các cấu hình phụ thuộc và kho lưu trữ cho tệp pom.xml của các ứng dụng Java dựa trên maven của bạn.

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-conversion</artifactId>
        <version>22.3</version> 
</dependency>

Chuyển đổi hình ảnh SVG sang PNG trong Java

Không lãng phí thời gian, hãy bắt đầu với chuyển đổi cơ bản với cấu hình mặc định. Các bước sau đây cho thấy cách chuyển đổi tệp đồ họa vector SVG thành hình ảnh PNG trong Java.

  • Tải đồ họa PNG bằng lớp Converter.
  • Chuẩn bị các tùy chọn chuyển đổi hình ảnh.
  • Đặt loại tệp chuyển đổi là PNG.
  • Gọi phương thức convert() để chuyển tệp SVG đã tải thành hình ảnh PNG.

Mã nguồn Java sau đây chuyển đổi SVG thành hình ảnh PNG.

// Cách chuyển đổi tệp SVG sang định dạng PNG trong Java bằng các tùy chọn mặc định
Converter converter = new Converter("path/vector-graphics.svg");

ImageConvertOptions options = new ImageConvertOptions();
options.setFormat(ImageFileType.Png);

converter.convert("path/svg-to-png.png", options);

Hình ảnh SVG sang PNG bằng Tùy chọn nâng cao trong Java

Nhiều tùy chọn tùy chỉnh có thể được áp dụng cho đầu ra PNG trong khi chuyển đổi từ SVG để có được kết quả mong muốn. Sau đây là một số thuộc tính có thể được điều chỉnh trong khi chuyển đổi SVG sang PNG:

Tùy chọn Tùy chỉnh Phương pháp
Độ sáng setBrightness(giá trị int)
Độ tương phản setContrast(giá trị int)
Chế độ Lật (Ngang / Dọc) setFlipMode(Giá trị ImageFlipModes)
Gamma setGamma(giá trị float)
Thang độ xám setGrayscale(giá trị boolean)
Chiều cao setHeight(giá trị int)
Góc xoay setRotateAngle(giá trị int)
Hình mờ setWatermark(Giá trị WatermarkTextOptions)
Chiều rộng setWidth(giá trị int)

Các bước sau đây cho biết cách áp dụng các biến thể trong khi chuyển đổi đồ họa SVG thành hình ảnh PNG trong Java.

  • Tải đồ họa SVG bằng lớp Converter.
  • Chuẩn bị các tùy chọn chuyển đổi hình ảnh.
  • Đặt loại tệp chuyển đổi là PNG.
  • Đặt các thuộc tính có liên quan khác bằng cách sử dụng các phương thức setter tương ứng và điều chỉnh giá trị của chúng cho phù hợp.
  • Chuyển đổi sang hình ảnh PNG bằng phương thức convert() với các tùy chọn đã chuẩn bị sẵn.

Bạn có thể áp dụng bất kỳ hiệu ứng nào trong số này hoặc kết hợp để có được đầu ra PNG cần thiết. Mã nguồn sau đây áp dụng tùy chỉnh cho hình ảnh PNG trong khi chuyển đổi SVG sang PNG trong Java.

// Chuyển đổi tệp SVG sang định dạng PNG trong Java bằng nhiều tùy chỉnh khác nhau
Converter converter = new Converter("path/vector-graphics.svg");

ImageConvertOptions options = new ImageConvertOptions();
options.setFormat(ImageFileType.Png); // Set output format as PNG

options.setFlipMode(ImageFlipModes.FlipY); // Flip Vertically or Horizontally
options.setBrightness(50);  // Set Brightness
options.setContrast(50);    // Set Contrast
options.setGamma(0.5F);     // Set Gamma
options.setGrayscale(true);	// Set Grayscale
options.setRotateAngle(45);	// Set Rotation

// Thêm watermark vào PNG khi chuyển đổi từ định dạng SVG
WatermarkTextOptions watermark = new WatermarkTextOptions("Watermark");
watermark.setColor(Color.BLUE);
watermark.setBackground(false);
watermark.setRotationAngle(-45);
watermark.setTop(50);
watermark.setLeft(50);
watermark.setTransparency(0.2);
watermark.setWidth(450);
watermark.setHeight(450);
options.setWatermark(watermark);

converter.convert("path/svg-to-png-customized.png", options);

Nhận giấy phép API miễn phí

Bạn có thể nhận giấy phép tạm thời miễn phí để sử dụng API mà không bị giới hạn đánh giá.

Sự kết luận

Tóm lại, chúng ta đã học cách chuyển đổi các tệp SVG sang định dạng PNG trong các ứng dụng Java. Chúng tôi đã tìm hiểu thêm về cách chúng tôi có thể xoay, lật hoặc tạo hình mờ cho các tệp PNG khi được chuyển đổi từ định dạng SVG. Hơn nữa, chúng tôi đã thảo luận về cách điều chỉnh các tùy chọn độ sáng, gamma và thang độ xám.

Bạn có thể thử xây dựng ứng dụng Java chuyển đổi hình ảnh của riêng mình. Bạn có thể tìm hiểu thêm về các API từ tài liệu để tự động chuyển đổi tài liệu và hình ảnh.

Cách dễ nhất là trải nghiệm các ví dụ từ GitHub. Liên hệ với chúng tôi nếu có bất kỳ thắc mắc nào qua diễn đàn.

Xem thêm