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:
- Откройте обозреватель решений.
- Разверните проект и щелкните правой кнопкой мыши папку Packages в вашем решении.
- Выберите опцию «Управление пакетами NuGet…»
- Нажмите на вкладку «Обзор» и найдите «Aspose.Imaging-Cloud».
- Установите флажок рядом с пакетом Aspose.Imaging-Cloud, выберите соответствующую версию на правой вкладке и нажмите кнопку Добавить пакет.
Подписка на Aspose.Cloud
Все наши API доступны только авторизованным лицам, чтобы обеспечить целостность и конфиденциальность данных. Кроме того, файлы, хранящиеся в облачном хранилище, связаны с учетной записью, на которую вы подписались через панель управления Aspose.Cloud. Поэтому первым шагом будет создание бесплатной учетной записи подписки, посетив панель управления Aspose.Cloud. Если у вас есть учетная запись GitHub или Google, просто зарегистрируйтесь. В противном случае нажмите кнопку Создать новую учетную запись и укажите необходимую информацию. Теперь войдите в панель управления, используя учетные данные, разверните раздел «Приложения» на панели управления и прокрутите вниз до раздела «Учетные данные клиента», чтобы увидеть сведения об идентификаторе клиента и секретном ключе клиента.
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.
Похожие статьи
Мы также рекомендуем посетить следующие ссылки, чтобы узнать больше о