将 JPG 转换为 PNG

联合图像专家组 (JPG/JPEG) 和便携式网络图形 (PNG) 是互联网上使用的两种流行光栅图像格式。与依赖 DCT 压缩的 JPEG 不同,PNG 使用 LZW 压缩,与 GIF 和 TIFF 格式使用的相同。PNG 相对于 JPEG 的最大优势在于压缩是无损的,这意味着每次打开和再次保存时都不会造成质量损失。PNG 还可以很好地处理细节丰富的高对比度图像。在本文中,我们将讨论如何使用 .NET REST API 将 JPG 图像转换为 PNG 格式的步骤。

图像处理API

Aspose.Imaging Cloud 是我们用于图像格式处理的领先产品之一。它使您能够裁剪、翻转、缩放、旋转、搜索、转换和导出现有图像格式为 支持的文件格式。REST 架构使开发人员能够在其基于云的解决方案中实现各种成像功能。为了进一步方便我们的客户,我们在 Aspose.Imaging REST API 的基础上开发了 Aspose.Imaging Cloud SDK for .NET,以便您在 C# .NET 应用程序中获得所有高级图像处理功能。

安装

为了使用 SDK,我们需要首先在系统上安装它。它可以通过 NuGetGitHub 下载。请在终端中执行以下命令通过 NuGet 安装 SDK:

nuget install Aspose.Imaging-Cloud

或者在 NuGet 包管理器中执行以下命令:

PM> Install-Package Aspose.Imaging-Cloud

Visual Studio 方法

另一种方法是直接在 Visual Studio 中安装:

  1. 打开解决方案资源管理器。
  2. 展开项目并右键单击解决方案中的“包”文件夹。
  3. 选择管理 NuGet 包… 选项
  4. 单击浏览选项卡并搜索“Aspose.Imaging-Cloud”。
  5. 单击 Aspose.Imaging-Cloud 包旁边的复选框,在右侧选项卡中选择适当的版本,然后单击添加包按钮。
Aspose.Imaging Cloud

图 1:- Aspose.Imaging-Cloud 作为 NuGet 包。

Aspose.Cloud 订阅

我们所有的 API 仅供授权人员访问,以维护数据完整性和隐私。此外,存储在云存储中的文件与通过 Aspose.Cloud 仪表板 订阅的帐户相关联。因此,第一步是通过访问 Aspose.Cloud 仪表板 创建一个免费订阅帐户。如果您有 GitHub 或 Google 帐户,只需注册即可。否则,单击 创建新帐户 按钮并提供所需信息。现在使用凭据登录仪表板并从仪表板展开应用程序部分,然后向下滚动到客户端凭据部分以查看客户端 ID 和客户端密钥详细信息。

客户端凭证

图片 2:- Aspose.Cloud 仪表板上的客户端凭证。

在 C# 中将 JPG 转换为 PNG

请按照以下步骤在 C# .NET 应用程序中将 JPG 格式转换为 PNG

  • 创建 ImagingApi 对象,同时传递客户端 ID 和客户端机密详细信息作为参数
  • 其次,从本地驱动器读取 JPEG 图像并将其作为参数传递给 UploadFileRequest 对象
  • 第三,调用ImagingApi的UploadFile(…)方法将文件上传到云存储
  • 现在创建一个 ConvertImageRequest 类的实例,该类以图像名称和结果输出格式作为参数
  • 然后调用ImagingApi类的ConvertImage(…)方法来启动转换操作
  • 最后,使用 File.Create 将流的输出保存到本地驱动器(自定义方法如下所示)。
// 从 https://dashboard.aspose.cloud/ 获取 ClientID
string clientSecret = "caac6e3d4a4724b2feb53f4e460eade3";
string clientID = "4ccf1790-accc-41e9-8d18-a78dbb2ed1aa";

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

// 输入 JPEG 图像的路径
string imageFile = "jpg-to-png.jpeg";
 
// 输出文件格式
string format = "png";
 
// 结果文件名
string resultantFile = "converted.png";

// 从本地驱动器加载文件
using (var file = System.IO.File.OpenRead("/Users/nshahbaz/Desktop/" + imageFile))
{
    var uploadFileRequest = new UploadFileRequest(imageFile, file);

    // 将原始文档上传至云存储
    imagingApi.UploadFile(uploadFileRequest);
}

try
{
    // 创建图像请求
    var request = new ConvertImageRequest(imageFile, format, null, null);
    
    // 启动转换操作
    Stream updatedImage = imagingApi.ConvertImage(request);

    // 如果转换成功,则打印成功消息
    if (request != null && request.Equals("OK"))
    {
        Console.WriteLine("JPG successfully converted to PNG !");
        Console.ReadKey();
    }
    
    // 调用方法将输出保存到系统驱动器上
    saveToDisk(updatedImage, "/Users/nshahbaz/Desktop/"+resultantFile);
}
catch (Exception ex)
{
    Console.WriteLine("error:" + ex.Message + "\n" + ex.StackTrace);
}  

// 自定义方法将 steam 对象保存为文件实例
public static void saveToDisk(Stream responseStream, String resultantFile)
{
    var fileStream = File.Create(resultantFile);
    responseStream.Seek(0, SeekOrigin.Begin);
    responseStream.CopyTo(fileStream);
    fileStream.Close();
}

用于 JPEG 到 PNG 转换的 cURL 命令

Cloud API 的 REST 架构使我们甚至可以通过命令行终端访问它们。但由于安全限制,您需要首先根据从 Aspose.Cloud 仪表板 检索到的 ClientID 和 ClientSecret 详细信息生成 JSON Web Token (JWT)。请在终端中执行以下命令以生成 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"

一旦我们有了 JWT 令牌,下一步就是调用 ConvertImage API 来执行 JPG 到 PNG 的转换操作。

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

请求 URL

https://api.aspose.cloud/v3.0/imaging/jpg-to-png.jpeg/convert?format=png

结论

我们探索了 Aspose.Imaging Cloud API,用于将 JPEG 图像转换为 PNG 格式。我们了解了使用 C# .NET 代码转换文件的过程以及使用 cURL 命令进行转换的过程。另请注意,Cloud SDK 是在 MIT 许可证下分发的,其完整源代码可通过 GitHub 下载。如果您在使用 API 时遇到任何问题或有任何疑问,请随时通过 免费产品支持论坛 与我们联系。

相关文章

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