convertir JPG a PNG

Joint Photographic Experts Group (JPG/JPEG) y Portable Network Graphics (PNG) son dos formatos de imágenes rasterizadas populares que se utilizan en Internet. A diferencia de JPEG, que se basa en la compresión DCT, PNG utiliza la compresión LZW, que es la misma que utilizan los formatos GIF y TIFF. La mayor ventaja de PNG sobre JPEG es que la compresión no tiene pérdida, lo que significa que no hay pérdida de calidad cada vez que se abre y se vuelve a guardar. PNG también maneja bien las imágenes detalladas y de alto contraste. En este artículo, vamos a analizar los pasos para convertir imágenes JPG a formato PNG utilizando la API REST de .NET.

API de procesamiento de imágenes

Aspose.Imaging Cloud es uno de nuestros productos líderes para el procesamiento de formatos de imagen. Le permite recortar, voltear, escalar, rotar, buscar, convertir y exportar formatos de imagen existentes a Formatos de archivo compatibles. La arquitectura REST permite a los desarrolladores implementar diversas capacidades de procesamiento de imágenes en sus soluciones basadas en la nube. Para facilitar aún más las cosas a nuestros clientes, hemos desarrollado Aspose.Imaging Cloud SDK para .NET sobre la API REST de Aspose.Imaging para que pueda obtener toda la manipulación avanzada de imágenes dentro de sus aplicaciones C# .NET.

Instalación

Para poder utilizar el SDK, primero debemos instalarlo en el sistema. Está disponible para descargar en NuGet y GitHub. Ejecute el siguiente comando en la terminal para instalar el SDK a través de NuGet:

nuget install Aspose.Imaging-Cloud

O ejecute el siguiente comando en el Administrador de paquetes NuGet:

PM> Install-Package Aspose.Imaging-Cloud

Enfoque de Visual Studio

Otro enfoque es la instalación directamente dentro de Visual Studio:

  1. Abra el Explorador de soluciones.
  2. Expanda el proyecto y haga clic derecho en la carpeta Paquetes dentro de su solución.
  3. Seleccione la opción Administrar paquetes NuGet…
  4. Haga clic en la pestaña Explorar y busque “Aspose.Imaging-Cloud”.
  5. Haga clic en la casilla de verificación junto al paquete Aspose.Imaging-Cloud, seleccione la versión adecuada en la pestaña derecha y haga clic en el botón Agregar paquete.
Cloud de imágenes Aspose.

Imagen 1: Aspose.Imaging-Cloud como paquete NuGet.

Suscripción a Aspose.Cloud

Todas nuestras API son accesibles únicamente para personas autorizadas, de modo que se mantenga la integridad y privacidad de los datos. Además, los archivos almacenados en el almacenamiento en la nube están asociados con la cuenta suscrita en panel de control de Aspose.Cloud. Por lo tanto, el primer paso es crear una cuenta de suscripción gratuita visitando panel de control de Aspose.Cloud. Si tiene una cuenta de GitHub o Google, simplemente regístrese. De lo contrario, haga clic en el botón Crear una nueva cuenta y proporcione la información requerida. Ahora inicie sesión en el panel de control con credenciales y expanda la sección Aplicaciones desde el panel de control y desplácese hacia abajo hasta la sección Credenciales del cliente para ver los detalles de ID de cliente y Secreto de cliente.

Credenciales del cliente

Imagen 2: Credenciales del cliente en el panel de Aspose.Cloud.

JPG a PNG en C#

Siga los pasos que se indican a continuación para realizar la conversión del formato JPG a PNG dentro de la aplicación C# .NET.

  • Cree un objeto ImagingApi mientras pasa los detalles de ID de cliente y Secreto de cliente como argumentos
  • En segundo lugar, lea la imagen JPEG desde la unidad local y pásela como argumento al objeto UploadFileRequest
  • En tercer lugar, llame al método UploadFile(…) de ImagingApi para cargar el archivo al almacenamiento en la nube.
  • Ahora cree una instancia de la clase ConvertImageRequest que toma el nombre de la imagen y el formato de salida resultante como argumentos
  • Luego llame al método ConvertImage(…) de la clase ImagingApi para iniciar la operación de conversión.
  • Por último, guarde la salida del flujo en la unidad local usando File.Create (el método personalizado se comparte a continuación).
// Obtenga ClientID desde https://dashboard.aspose.cloud/
string clientSecret = "caac6e3d4a4724b2feb53f4e460eade3";
string clientID = "4ccf1790-accc-41e9-8d18-a78dbb2ed1aa";

// crear una instancia de ImagingApi
ImagingApi imagingApi= new ImagingApi( clientSecret,clientID,"https://api.aspose.cloud/");

// Ruta de la imagen JPEG de entrada
string imageFile = "jpg-to-png.jpeg";
 
// formato de archivo de salida
string format = "png";
 
// nombre del archivo resultante
string resultantFile = "converted.png";

// cargar el archivo desde la unidad local
using (var file = System.IO.File.OpenRead("/Users/nshahbaz/Desktop/" + imageFile))
{
    var uploadFileRequest = new UploadFileRequest(imageFile, file);

    // Subir documento original al almacenamiento en la nube
    imagingApi.UploadFile(uploadFileRequest);
}

try
{
    // Crear solicitud de imagen
    var request = new ConvertImageRequest(imageFile, format, null, null);
    
    // Iniciar la operación de conversión
    Stream updatedImage = imagingApi.ConvertImage(request);

    // Imprimir mensaje de éxito si la conversión es exitosa
    if (request != null && request.Equals("OK"))
    {
        Console.WriteLine("JPG successfully converted to PNG !");
        Console.ReadKey();
    }
    
    // Llamar al método para guardar la salida en la unidad del sistema.
    saveToDisk(updatedImage, "/Users/nshahbaz/Desktop/"+resultantFile);
}
catch (Exception ex)
{
    Console.WriteLine("error:" + ex.Message + "\n" + ex.StackTrace);
}  

// Método personalizado para guardar un objeto de Steam como una instancia de archivo
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 conversión de JPEG a PNG

La arquitectura REST de las API de la nube nos permite acceder a ellas incluso a través de terminales de línea de comandos. Sin embargo, debido a restricciones de seguridad, primero debe generar un token web JSON (JWT) basado en los detalles de ClientID y ClientSecret recuperados del panel de control de Aspose.Cloud. Ejecute el siguiente comando en la terminal para generar el 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"

Una vez que tenemos el token JWT, el siguiente paso es llamar a la API ConvertImage para realizar la operación de conversión de JPG a 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 de solicitud

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

Conclusión

Hemos explorado Aspose.Imaging Cloud API para la conversión de imágenes JPEG a formato PNG. Hemos aprendido los procesos de conversión de archivos mediante código C# .NET, así como la conversión mediante comandos cURL. Tenga en cuenta también que el SDK de Cloud se distribuye bajo una licencia MIT y su código fuente completo está disponible para descargar en GitHub. En caso de que tenga algún problema o consulta mientras utiliza la API, no dude en ponerse en contacto a través del foro de soporte técnico gratuito.

Artículos relacionados

También recomendamos visitar los siguientes enlaces para conocer más sobre