конвертировать JPG в PNG

Joint Photographic Experts Group (JPG/JPEG) и Portable Network Graphics (PNG) — два популярных формата растровых изображений, используемых в Интернете. В отличие от JPEG, который использует сжатие DCT, PNG использует сжатие LZW, которое аналогично форматам GIF и TIFF. Самым большим преимуществом PNG перед JPEG является то, что сжатие происходит без потерь, то есть нет потери качества при каждом открытии и повторном сохранении. PNG также хорошо обрабатывает подробные, высококонтрастные изображения. В этой статье мы рассмотрим шаги по конвертации изображений JPG в формат PNG с помощью .NET REST API.

API обработки изображений

Aspose.Imaging Cloud — один из наших ведущих продуктов для обработки форматов изображений. Он позволяет обрезать, переворачивать, масштабировать, вращать, искать, конвертировать и экспортировать существующие форматы изображений в Поддерживаемые форматы файлов. Архитектура REST позволяет разработчикам реализовывать разнообразные возможности обработки изображений в своих облачных решениях. Чтобы еще больше облегчить работу нашим клиентам, мы разработали Aspose.Imaging Cloud SDK для .NET поверх Aspose.Imaging REST API, чтобы вы могли получить все расширенные возможности обработки изображений в своих приложениях C# .NET.

Установка

Чтобы использовать SDK, нам нужно сначала установить его в системе. Он доступен для загрузки через NuGet и GitHub. Пожалуйста, выполните следующую команду в терминале, чтобы установить SDK через NuGet:

nuget install Aspose.Imaging-Cloud

Или выполните следующую команду в диспетчере пакетов NuGet:

PM> Install-Package Aspose.Imaging-Cloud

Подход Visual Studio

Другой подход — установка непосредственно в Visual Studio:

  1. Откройте обозреватель решений.
  2. Разверните проект и щелкните правой кнопкой мыши папку Packages в вашем решении.
  3. Выберите опцию «Управление пакетами NuGet…»
  4. Нажмите на вкладку «Обзор» и найдите «Aspose.Imaging-Cloud».
  5. Установите флажок рядом с пакетом Aspose.Imaging-Cloud, выберите соответствующую версию на правой вкладке и нажмите кнопку Добавить пакет.
Aspose.Cloud изображений

Изображение 1: Aspose.Imaging-Cloud как пакет NuGet.

Подписка на Aspose.Cloud

Все наши API доступны только авторизованным лицам, чтобы обеспечить целостность и конфиденциальность данных. Кроме того, файлы, хранящиеся в облачном хранилище, связаны с учетной записью, на которую вы подписались через панель управления Aspose.Cloud. Поэтому первым шагом будет создание бесплатной учетной записи подписки, посетив панель управления Aspose.Cloud. Если у вас есть учетная запись GitHub или Google, просто зарегистрируйтесь. В противном случае нажмите кнопку Создать новую учетную запись и укажите необходимую информацию. Теперь войдите в панель управления, используя учетные данные, разверните раздел «Приложения» на панели управления и прокрутите вниз до раздела «Учетные данные клиента», чтобы увидеть сведения об идентификаторе клиента и секретном ключе клиента.

Учетные данные клиента

Изображение 2: Учетные данные клиента на панели управления Aspose.Cloud.

JPG в PNG в C#

Чтобы выполнить преобразование формата JPG в PNG в приложении C# .NET, выполните указанные ниже действия.

  • Создайте объект ImagingApi, передавая данные Client ID и Client Secret в качестве аргументов.
  • Во-вторых, считайте изображение JPEG с локального диска и передайте его в качестве аргумента объекту UploadFileRequest.
  • В-третьих, вызовите метод UploadFile(…) ImagingApi для загрузки файла в облачное хранилище.
  • Теперь создайте экземпляр класса ConvertImageRequest, который принимает в качестве аргументов имя изображения и результирующий формат вывода.
  • Затем вызовите метод ConvertImage(…) класса ImagingApi, чтобы инициировать операцию преобразования.
  • Наконец, сохраните вывод из потока на локальный диск с помощью File.Create (пользовательский метод описан ниже).
// Получите ClientID с https://dashboard.aspose.cloud/
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
{
    // Создать ImageRequest
    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();
}

Команда cURL для преобразования JPEG в PNG

Архитектура REST облачных API позволяет нам получать к ним доступ даже через терминалы командной строки. Но из-за ограничений безопасности вам необходимо сначала сгенерировать JSON Web Token (JWT) на основе сведений ClientID и ClientSecret, полученных из панели управления Aspose.Cloud. Выполните следующую команду в терминале, чтобы сгенерировать токен 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, следующим шагом будет вызов API ConvertImage для выполнения операции преобразования 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, пожалуйста, свяжитесь с нами через Free product support forum.

Похожие статьи

Мы также рекомендуем посетить следующие ссылки, чтобы узнать больше о