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>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>
现在为了使用 API,我们需要我们的个性化客户端凭证。如果您已经在 Aspose Cloud Dashboard 上注册,则可以轻松获得它们。否则,通过有效的电子邮件地址注册一个免费帐户并获取您的客户凭据。
在 Java 中将 SVG 转换为 PNG
我们的图像处理 API 能够以最少的代码行将 PNG 转换为 SVG,将 SVG 转换为 PNG。因此,在本节中,我们将讨论使用 Java 将 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 下载。
使用 cURL 命令将 SVG 保存为 PNG
由于Aspose.Imaging Cloud是按照REST架构开发的,因此可以通过cURL命令轻松访问。因此,在本节中,我们将使用 cURL 命令将 SVG 保存为 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 下载(我们的 Cloud SDK 是在 MIT 许可下开发的)。请注意,用于测试 API 惊人功能的另一个选项是通过网络浏览器中的 SwaggerUI。
然而,产品文档 是一个很棒的文章库,其中包含解释 API 其他令人兴奋的功能的文章。最后,如果您在使用 API 时遇到任何问题,您可以考虑通过免费的 产品支持论坛 联系我们。
相关文章
我们强烈建议访问以下链接以了解更多信息: