SVG 转 PNG

在线将 SVG 转换为 PNG | 将 SVG 保存为 PNG

可缩放矢量图形 (SVG) 为 Web 定义了基于矢量的图形。SVG 是一种基于 XML 的矢量图像格式,用于二维图形,支持交互性和动画。这种格式在互联网上渲染二维图像时很流行,图像可以缩放到任意大小。但是,如果我们需要将 SVG 转换为 PNG 进行无损压缩,而不会丢失细节和质量,那么 Aspose.Imaging Cloud 是一个可行的解决方案。

本文详细介绍了如何在线将 SVG 转换为 PNG。

图片转换API

Aspose.Imaging Cloud 是我们针对图像处理需求的编程解决方案。您可以执行包括调整大小、裁剪、旋转、缩放、翻转、搜索和将图像导出为各种受支持的格式等操作。为了进一步方便我们的用户,我们创建了特定于编程语言的 SDK,根据本文的范围,我们将使用适用于 Aspose.Imaging for .NET Cloud SDK。现在请访问以下链接了解有关 如何安装 Aspose.Cloud SDK 的更多信息。

在 C# 中将 SVG 转换为 PNG

请按照以下说明将云存储中已有的 SVG 图像转换为 PNG 格式。

  • 第一步是创建 ImagingApi 的实例,同时传递 ClientID 和 ClientSecret 详细信息作为参数。
  • 其次,使用 ImagingApi 的 UploadFile(..) 方法将 SVG 图像上传到云存储。
  • 第三,创建 ConvertImageRequest 类的实例,同时传递输入 SVG 的名称和结果格式作为参数。
  • 现在调用 ConvertImage(..) 方法执行转换操作。结果 PNG 将作为 Stream 实例返回。
  • 最后,使用 File.Create 调用自定义方法将 Stream 实例保存为本地驱动器上的文件。
// 有关完整示例,请访问https://github.com/aspose-imaging-cloud/aspose-imaging-cloud-dotnet
// 从 https://dashboard.aspose.cloud/ 获取客户端凭据
string clientSecret = "d757548a9f2558c39c2feebdf85b4c44";
string clientID = "4db2f826-bf9c-42e7-8b2a-8cbca2d15553";

// 创建 DiagramApi 对象
ImagingApi imagingApi = new ImagingApi(clientSecret,clientID, "https://api.aspose.cloud/");

// 输入 SVG 文件的名称
String inputFileName = "trashloader2.svg";
// 生成的文件格式
String newFormat = "png";
// 输出文件的名称
String newFileName = "Converted.png";

try
{
    // 从本地驱动器加载文件
    using (var inputStream = System.IO.File.OpenRead(@"C:\Users\shahbnay\Downloads\" + inputFileName))
    {
        // 创建文件上传请求    
        UploadFileRequest request = new UploadFileRequest(inputFileName, inputStream);
        // 将文件上传到默认云存储
        imagingApi.UploadFile(request);
                
        // 创建图像转换实例
        var response = new ConvertImageRequest(inputFileName,newFormat);
        // 启动图像转换操作
        var responseStream = imagingApi.ConvertImage(response);
                
        // 将流实例保存为本地存储上的文件
        saveToDisk(responseStream, @"C:\Users\shahbnay\Downloads\" + newFileName);
    }
catch (Exception ex)
{
    Console.WriteLine("error:" + ex.Message + "\n" + ex.StackTrace);
}
        
static void saveToDisk(Stream responseStream, String resultantFile)
{
    var fileStream = File.Create(resultantFile);
    responseStream.Seek(0, SeekOrigin.Begin);
    responseStream.CopyTo(fileStream);
    fileStream.Close();
}

供您参考,上述示例中使用的示例图像可以从 trashloader2.svgConverted.png 下载。

SVG 到 PNG 转换预览

图 1:SVG 到 PNG 转换预览。

使用 cURL 命令将 SVG 转换为 PNG

在本节中,我们将使用 cURL 命令将 SVG 转换为 PNG。第一步是根据客户端凭据生成 JWT 访问令牌。请执行以下命令来生成一个:

curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=4ccf1790-accc-41e9-8d18-a78dbb2ed1aa&client_secret=caac6e3d4a4724b2feb53f4e460eade3" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"

现在执行以下 cURL 命令将 SVG 转换为 PNG,其中结果作为响应流返回并可以保存到本地驱动器。

curl -X GET "https://api.aspose.cloud/v3.0/imaging/trashloader2.svg/convert?format=png" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>" \
-o Converted.png

如果您需要转换作为零索引的 multipart/form-data 内容或原始主体流传递的 SVG 图像。

curl -X POST "https://api.aspose.cloud/v3.0/imaging/convert?format=png" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>" \
-H  "Content-Type: multipart/form-data" \
-d {"imageData":{}} \
-o Converted.png

结论

我们讨论了 Aspose.Imaging Cloud API 的图像转换功能。具体重点是使用 C# .NET 代码片段将 SVG 转换为 PNG。同时,我们还讨论了如何通过 cURL 命令将 SVG 保存为 PNG 的细节。请注意,也可以通过 Swagger 界面访问 API,您可以在 Web 浏览器中测试 API。尽管如此,Cloud SDK 是在 MIT 许可下开发的,因此可以从 GitHub 下载完整的源代码。

如果您在使用 API 时遇到任何问题或有任何相关疑问,请随时通过 免费产品支持论坛 与我们联系。

相关链接

我们建议您访问以下链接以了解更多信息: