svg转png

在 Java 中将 SVG 转换为 PNG

SVG 图像的显着特征之一是它们是可缩放的。无论屏幕分辨率或尺寸如何,SVG 都保持相同的质量。所以你可以在任何分辨率下设计它,它会在不损害质量或变得像素化的情况下放大或缩小。与光栅图像进行比较时,您需要从一开始就知道您想要什么尺寸,否则可能会冒使图像太大或太小的风险。但是,由于 SVG 基于点和路径而不是像素,因此它们无法显示与标准图像格式一样多的细节。所以如果我们将 SVG 转换为 PNG 格式,这些问题就可以得到解决。

SVG 到 PNG 转换 API

在本文中,我们将使用 Aspose.Imaging Cloud SDK for Java,它是基于 REST 的 API,提供以编程方式编辑、操作和转换光栅、图元文件、photoshop 为各种支持的格式 的功能].它还支持在线将 SVG 转换为 PNG 的功能。现在,为了开始使用 SDK,我们需要在我们的 java 项目中添加它的引用,方法是在 pom.xml(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>

如果我们已经在 Aspose Cloud Dashboard 上注册,请从 Cloud Dashboard 获取您的客户端凭据。否则,您需要先使用有效的电子邮件地址注册一个免费帐户。

在 Java 中将 SVG 转换为 PNG

图像处理 API 能够使用 Java 代码片段将 PNG 转换为 SVG 以及将 SVG 转换为 PNG。

  • 首先,使用个性化客户端凭证创建一个 ImagingApi 对象
  • 其次,使用 readAllBytes(…) 方法读取 SVG 图像的内容并传递给 byte[] 数组
  • 然后在传递 SVG 名称的同时创建 UploadFileRequest 实例,并使用 uploadFile(…) 方法上传到云存储
  • 现在创建一个 ConvertImageRequest 对象,我们将输入 SNG 和生成的图像格式指定为 PNG
  • 调用方法 convertImage(…) 将 SVG 转换为 PNG 格式,结果作为响应流返回
  • 最后,使用 FileOutputStream 对象将生成的 PNG 保存到本地驱动器
// 从 https://dashboard.aspose.cloud/ 获取 ClientID 和 ClientSecret
String clientId = "7ef10407-c1b7-43bd-9603-5ea9c6db83cd";
String clientSecret = "ba7cc4dc0c0478d7b508dd8ffa029845";

// 创建成像对象
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);

// 从本地系统加载 SVG 图像
File file1 = new File("File_Extension Icons.svg");
byte[] imageStream = Files.readAllBytes(file1.toPath());
			
// 创建文件上传请求对象
UploadFileRequest uploadRequest = new UploadFileRequest("input.svg",imageStream,null);
// 将 SVG 图片上传到云存储
imageApi.uploadFile(uploadRequest);

// 指定图像的输出格式
String format = "PNG";

// 创建图像转换请求对象
ConvertImageRequest convertImage = new ConvertImageRequest("input.svg", format, null, null);
// 将 SVG 转换为 PNG 并在响应流中返回图像
byte[] resultantImage = imageApi.convertImage(convertImage);

// 将 PNG 图像保存到本地存储
FileOutputStream fos = new FileOutputStream("/Users/nayyer/Documents/" + "Converted.png");
fos.write(resultantImage);
fos.close();

上面示例中使用的输入 SVG 图像可以从 FileExtension Icons.svg 下载。

svg转png

图像:- 将 svg 转换为 png 在线预览

使用 cURL 命令将 SVG 保存为 PNG

Aspose.Imaging Cloud是根据REST架构开发的,所以我们可以使用cURL命令将图片保存为png。现在第一步是使用以下命令生成 JWT 访问令牌(基于客户端凭据)。

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"

生成 JWT 令牌后,请执行以下命令将 SVG 转换为 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

结论

我们已经了解了如何使用 Java 代码片段将 SVG 转换为 PNG 的详细信息。同时,我们探索了使用 cURL 命令将 SVG 转换为 PNG 的选项。此外,如果你想修改SDK的源代码,你可以从GitHub下载if(我们所有的Cloud SDK都是在MIT许可下开发的)。此外,测试 API 有前途的功能的一种选择是通过网络浏览器中的 SwaggerUI

尽管如此,产品文档 是了解 API 提供的其他令人兴奋的功能的绝佳信息来源 最后,如果您在使用 API 时遇到任何问题,您可以考虑通过免费联系我们快速解决产品支持论坛

相关文章

请访问以下链接以了解更多信息: