可缩放矢量图形 (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.svg 和 Converted.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 时遇到任何问题或有任何相关疑问,请随时通过 免费产品支持论坛 与我们联系。
相关链接
我们建议您访问以下链接以了解更多信息: