Convirtiendo imágenes a JPEG usando Node.js y Apidog

Estás creando una app web y necesitas que los usuarios suban imágenes. Deben ser JPEG por consistencia y rendimiento. ¿Cómo convertir las imágenes a JPEG al vuelo?

Daniel Costa

Daniel Costa

15 April 2025

Convirtiendo imágenes a JPEG usando Node.js y Apidog

Estás creando una aplicación web y necesitas permitir que los usuarios suban imágenes. Pero hay una trampa: necesitas que todas las imágenes estén en formato JPEG por motivos de consistencia y rendimiento. ¿Cómo puedes convertir las imágenes subidas por los usuarios a JPEG sobre la marcha?

En este tutorial, exploraremos cómo configurar un servidor backend utilizando Node.js y Express.js para convertir imágenes a formato JPEG. Utilizaremos la potente biblioteca Sharp para el procesamiento de imágenes y demostraremos cómo manejar las solicitudes de conversión de imágenes desde un cliente front-end o una herramienta de gestión de API como Apidog.

Requisitos previos:

Antes de empezar, asegúrate de tener Node.js y npm (Node Package Manager) instalados en tu sistema. Puedes descargarlos e instalarlos desde el sitio web oficial de Node.js.

Configuración del Backend;

Empecemos creando una nueva carpeta para nuestro proyecto e inicializando npm.

mkdir image-conversion-backend
cd image-conversion-backend
npm init -y

A continuación, instala las dependencias necesarias: Express, Cors, Multer y Sharp.

npm install express cors multer sharp

Con las dependencias instaladas, vamos a crear un archivo index.js donde definiremos nuestro servidor Express.

const cors = require("cors");
const express = require('express');
const multer = require('multer');
const sharp = require('sharp');

const app = express();
const port = process.env.PORT || 8080;

// Configure Multer to handle file uploads
const storage = multer.memoryStorage();
const upload = multer({ storage: storage });

// Enable Cross-Origin Resource Sharing (CORS)
app.use(cors());

// Parse JSON bodies
app.use(express.json());

// Define route for image conversion
app.post('/convert', upload.single('image'), async (req, res) => {
    try {
        // Use Sharp to convert the uploaded image to JPEG format
        const buffer = await sharp(req.file.buffer).toFormat('jpg').toBuffer();

        // Send the converted image as the response
        res.send(buffer);
    } catch (error) {
        console.error('Conversion error:', error);
        res.status(500).send('Conversion failed');
    }
});

// Start the server
app.listen(port, () => {
    console.log(`Server is running on port ${port}`);
});

Entendiendo el Código;

Analicemos los componentes clave de nuestra aplicación backend:

Ejecutando el Servidor Backend

Para ejecutar el servidor backend, navega al directorio de tu proyecto en la terminal y ejecuta el siguiente comando:

node index.js

Una imagen que muestra el servidor en ejecución...

Tu servidor backend ya está en funcionamiento, listo para manejar las solicitudes de conversión de imágenes.

Ahora, puedes utilizar una herramienta frontend como react, vue.js o incluso el método Fetch de js vainilla para enviar una solicitud desde el frontend al servidor para probar las cosas. Eso debería funcionar. Sin embargo, en esta guía, como mencioné antes, utilizaremos Apidog.

Empezando con Apidog

Una imagen que muestra el diseño de la página de inicio o apidog

Para aquellos de nosotros que no sabemos qué es Apidog, Apidog es una plataforma de colaboración integrada para la documentación de API, la depuración de API, la simulación de API y las pruebas automatizadas de API. Para aquellos de nosotros que hemos oído hablar de Postman o lo hemos utilizado antes, Apidog ofrece mucho más que Postman, lo que la convierte en la herramienta de gestión de API ideal para probar tus API.

button

Puedes utilizar el enlace anterior para descargar o crear una cuenta para empezar. Una vez creada tu cuenta, el siguiente paso es enviar una solicitud POST a tu servidor backend ya en ejecución para convertir las imágenes a jpeg.

Cuando creas una cuenta en Apidog, se crea automáticamente un nuevo equipo/espacio de trabajo para ti. Puedes crear proyectos o continuar con el predeterminado generado para ti. En este ejemplo, utilizaré el proyecto ya creado y crearé una nueva solicitud para probar nuestro código backend.

Una imagen que apunta a "request" en apidog

Cuando haces clic en ese botón de solicitud, se te mostrará una interfaz para enviar tu primera solicitud.

Lo primero que hay que hacer es cambiar el tipo de solicitud de GET a POST. Actualiza la URL con la URL del servidor local - localhost:8080 en mi caso.

A continuación, haz clic en la sección "Body" y selecciona datos de formulario. Al seleccionar datos de formulario, podrás seleccionar y subir imágenes directamente a Apidog para probar la conversión. Ahora dale a los datos del formulario un nombre "Image", escribe "file" y sube la imagen para convertirla.

Una vez hecho esto, haz clic en el botón Enviar en la parte superior derecha para enviar la solicitud. Si todo va bien, deberías poder ver una respuesta 200 y el archivo para descargar.

Pantalla de descarga de archivos de Apidog

Es importante tener en cuenta que cuando descargues el archivo, verás un archivo response.bin. Cuando veas la propiedad, descubrirás que es un archivo .jpg. Y esa es tu imagen convertida.

Conclusión

Acabamos de ver cómo convertir imágenes de .png o cualquier otro formato a .jpeg utilizando node.js y luego probar las cosas con Apidog.

Apidog nos dio la capacidad y la flexibilidad de probar la API sin depender de ninguna herramienta o framework frontend.

Explore more

Cómo usar Lovable AI (Alternativa a Cursor para desarrolladores web)

Cómo usar Lovable AI (Alternativa a Cursor para desarrolladores web)

Aprende a crear cualquier web con Lovable en esta guía completa. Descubre procesos paso a paso, funciones innovadoras e integra herramientas gratuitas como Apidog para gestión API.

15 April 2025

Cómo usar n8n con servidores MCP

Cómo usar n8n con servidores MCP

Automatiza flujos con n8n y servidores MCP para IA. Guía técnica: configuración, APIs, nodo "MCP Server Trigger" y Apidog para pruebas.

14 April 2025

Cómo añadir claves API personalizadas a Cursor: Una guía completa

Cómo añadir claves API personalizadas a Cursor: Una guía completa

Este tutorial te guiará para configurar y gestionar claves API personalizadas en Cursor (OpenAI, Anthropic, Google y Azure).

11 April 2025

Practica el diseño de API en Apidog

Descubre una forma más fácil de construir y usar APIs