Joint Photographic Experts Group (JPG/JPEG) e Portable Network Graphics (PNG) são dois formatos populares de imagem raster usados na internet. Ao contrário do JPEG, que depende da compressão DCT, o PNG usa a compressão LZW, que é a mesma usada pelos formatos GIF e TIFF. A maior vantagem do PNG sobre o JPEG é que a compressão é sem perdas, o que significa que não há perda de qualidade cada vez que ele é aberto e salvo novamente. O PNG também lida bem com imagens detalhadas e de alto contraste. Neste artigo, discutiremos as etapas sobre como converter imagens JPG para o formato PNG usando a API REST do .NET.
API de processamento de imagem
Aspose.Imaging Cloud é um dos nossos principais produtos para processamento de formato de imagem. Ele permite que você corte, inverta, dimensione, gire, pesquise, converta e exporte formatos de imagem existentes para Formatos de arquivo suportados. A arquitetura REST permite que os desenvolvedores implementem diversos recursos de imagem em suas soluções baseadas em nuvem. Para facilitar ainda mais nossos clientes, desenvolvemos Aspose.Imaging Cloud SDK para .NET no topo da API REST Aspose.Imaging para que você obtenha toda a manipulação avançada de imagem em seus aplicativos C# .NET.
Instalação
Para usar o SDK, precisamos primeiro instalá-lo no sistema. Ele está disponível para download no NuGet e no GitHub. Execute o seguinte comando no terminal para instalar o SDK via NuGet:
nuget install Aspose.Imaging-Cloud
Ou execute o seguinte comando no Gerenciador de Pacotes NuGet:
PM> Install-Package Aspose.Imaging-Cloud
Abordagem do Visual Studio
Outra abordagem é a instalação diretamente no Visual Studio:
- Abra o Solution Explorer.
- Expanda o projeto e clique com o botão direito do mouse na pasta Pacotes dentro da sua solução.
- Selecione a opção Gerenciar pacotes NuGet…
- Clique na aba Navegar e procure por “Aspose.Imaging-Cloud“.
- Clique na caixa de seleção ao lado do pacote Aspose.Imaging-Cloud, selecione a versão apropriada na aba direita e clique no botão Adicionar pacote.
Assinatura Aspose.Cloud
Todas as nossas APIs são acessíveis somente a pessoas autorizadas para que a integridade e privacidade dos dados sejam mantidas. Além disso, os arquivos armazenados no armazenamento em nuvem são associados à conta assinada no painel Aspose.Cloud. Portanto, o primeiro passo é criar uma conta de assinatura gratuita visitando o painel Aspose.Cloud. Se você tiver uma conta GitHub ou Google, basta se inscrever. Caso contrário, clique no botão Criar uma nova conta e forneça as informações necessárias. Agora, faça login no painel usando credenciais e expanda a seção Aplicativos no painel e role para baixo em direção à seção Credenciais do cliente para ver os detalhes do ID do cliente e do segredo do cliente.
JPG para PNG em C#
Siga as etapas abaixo para realizar a conversão do formato JPG para PNG no aplicativo C# .NET.
- Crie um objeto ImagingApi ao passar os detalhes do ID do cliente e do segredo do cliente como argumentos
- Em segundo lugar, leia a imagem JPEG da unidade local e passe-a como um argumento para o objeto UploadFileRequest
- Em terceiro lugar, chame o método UploadFile(…) do ImagingApi para enviar o arquivo para o armazenamento em nuvem
- Agora crie uma instância da classe ConvertImageRequest que recebe o nome da imagem e o formato de saída resultante como argumentos
- Em seguida, chame o método ConvertImage(…) da classe ImagingApi para iniciar a operação de conversão
- Por fim, salve a saída do fluxo na unidade local usando File.Create (o método personalizado é compartilhado abaixo).
// Obter ClientID de https://dashboard.aspose.cloud/
string clientSecret = "caac6e3d4a4724b2feb53f4e460eade3";
string clientID = "4ccf1790-accc-41e9-8d18-a78dbb2ed1aa";
// crie uma instância de ImagingApi
ImagingApi imagingApi= new ImagingApi( clientSecret,clientID,"https://api.aspose.cloud/");
// caminho da imagem JPEG de entrada
string imageFile = "jpg-to-png.jpeg";
// formato de arquivo de saída
string format = "png";
// nome do arquivo resultante
string resultantFile = "converted.png";
// carregue o arquivo da unidade local
using (var file = System.IO.File.OpenRead("/Users/nshahbaz/Desktop/" + imageFile))
{
var uploadFileRequest = new UploadFileRequest(imageFile, file);
// Carregar documento original no Cloud Storage
imagingApi.UploadFile(uploadFileRequest);
}
try
{
// Criar ImageRequest
var request = new ConvertImageRequest(imageFile, format, null, null);
// iniciar a operação de conversão
Stream updatedImage = imagingApi.ConvertImage(request);
// imprimir mensagem de sucesso se a conversão for bem-sucedida
if (request != null && request.Equals("OK"))
{
Console.WriteLine("JPG successfully converted to PNG !");
Console.ReadKey();
}
// chame o método para salvar a saída na unidade do sistema
saveToDisk(updatedImage, "/Users/nshahbaz/Desktop/"+resultantFile);
}
catch (Exception ex)
{
Console.WriteLine("error:" + ex.Message + "\n" + ex.StackTrace);
}
// método personalizado para salvar objeto steam como instância de arquivo
public static void saveToDisk(Stream responseStream, String resultantFile)
{
var fileStream = File.Create(resultantFile);
responseStream.Seek(0, SeekOrigin.Begin);
responseStream.CopyTo(fileStream);
fileStream.Close();
}
Comando cURL para conversão de JPEG para PNG
A arquitetura REST das APIs de nuvem nos permite acessá-las até mesmo por terminais de linha de comando. Mas, devido a restrições de segurança, você precisa primeiro gerar um JSON Web Token (JWT) com base nos detalhes do ClientID e ClientSecret recuperados do painel Aspose.Cloud. Execute o seguinte comando no terminal para gerar o token 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"
Depois de ter o token JWT, o próximo passo é chamar a API ConvertImage para executar a operação de conversão de JPG para 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 da solicitação
https://api.aspose.cloud/v3.0/imaging/jpg-to-png.jpeg/convert?format=png
Conclusão
Exploramos Aspose.Imaging Cloud API para a conversão de imagem JPEG para o formato PNG. Aprendemos os processos de conversão de arquivos usando o código C# .NET, bem como a conversão usando os comandos cURL. Observe também que o Cloud SDK é distribuído sob uma licença MIT e seu código-fonte completo está disponível para download no GitHub. Caso você encontre algum problema ou tenha alguma dúvida ao usar a API, sinta-se à vontade para entrar em contato por meio do Fórum de suporte gratuito ao produto.
Artigos relacionados
Recomendamos também que visite os seguintes links para saber mais sobre