Filed underDesarrollo y Códigoon•3 min de lectura

Optimización de imágenes: Convierte y comprime PNG, JPG a WebP en Node.js

La era digital ha llevado las imágenes al frente de nuestra experiencia de navegación. Sin embargo, el problema es que estas imágenes a menudo ocupan un ancho d...

La era digital ha llevado las imágenes al frente de nuestra experiencia de navegación. Sin embargo, el problema es que estas imágenes a menudo ocupan un ancho de banda considerable, afectando el rendimiento del sitio web. Podemos combatir esto reduciendo el tamaño de las imágenes a través de un proceso llamado Optimización de imágenes. En este artículo, exploraremos cómo convertir archivos de imágenes como PNG y JPG a WebP y comprimirlos usando Node.js.

¿Por qué elegir WebP?

WebP, un formato de imagen moderno desarrollado por Google, ofrece compresión superior sin pérdida y con pérdida para imágenes web. Al convertir archivos PNG y JPG a WebP, podemos lograr tamaños de archivo más pequeños sin comprometer la calidad de la imagen, lo que en última instancia hace que nuestros sitios web se carguen más rápido.

Configuración de Node.js

Antes de comenzar el proceso de conversión, asegurémonos de tener Node.js instalado. Si no es así, descárgalo e instálalo según tu sistema operativo.

Instalación de los módulos requeridos

Utilizaremos dos paquetes de npm: sharp para la conversión de imágenes, e imagemin-webp para la compresión de imágenes.

npm install sharp imagemin imagemin-webp

Conversión de imágenes a WebP

Utilicemos el módulo sharp para convertir una imagen PNG o JPG a WebP. Esto se logra leyendo el archivo de entrada y transformándolo en formato WebP.

const sharp = require('sharp');

sharp('input.png')
  .webp()
  .toFile('output.webp')
  .then(() => console.log('Conversión de imagen completa.'))
  .catch(err => console.error(err));

Compresión de imágenes WebP

A continuación, comprimamos la imagen WebP convertida utilizando el módulo imagemin-webp.

const imagemin = require('imagemin');
const imageminWebp = require('imagemin-webp');

(async () => {
  await imagemin(['output.webp'], {
    destination: 'compressed_images',
    plugins: [
      imageminWebp({quality: 50})
    ]
  });

  console.log('Compresión de imagen completa.');
})();

Código completo

const sharp = require('sharp');
const imagemin = require('imagemin');
const imageminWebp = require('imagemin-webp');

sharp('input.png')
  .webp()
  .toFile('output.webp')
  .then(() => {
    (async () => {
      await imagemin(['output.webp'], {
        destination: 'compressed_images',
        plugins: [
          imageminWebp({quality: 50})
        ]
      });

      console.log('Conversión y compresión de imagen completa.');
    })();
  })
  .catch(err => console.error(err));

Este script completo convertirá tu imagen al formato WebP y la comprimirá.

Conclusión

Ahí lo tienes: una forma eficiente de convertir y comprimir PNG y JPG a WebP en Node.js. Ahora puedes optimizar tus imágenes, acelerar los tiempos de carga de tu sitio web y ofrecer una mejor experiencia de usuario. Con un poco de práctica, estos pasos se convertirán en algo natural.

Preguntas frecuentes

  1. ¿Por qué debería usar WebP en lugar de PNG o JPG? WebP ofrece una compresión superior, reduciendo el tamaño del archivo sin una pérdida significativa de calidad de imagen.

  2. ¿Por qué necesitamos comprimir imágenes? La compresión de imágenes reduce su tamaño de archivo, lo que puede mejorar drásticamente los tiempos de carga del sitio web y ahorrar ancho de banda.

  3. ¿Puedo usar otros lenguajes de programación para esta tarea? Sí, otros lenguajes como Python, Java, etc., también tienen bibliotecas para la conversión y compresión de imágenes. Sin embargo, este tutorial se centra en Node.js.

  4. ¿Qué ocurre si el proceso de conversión o compresión falla? Asegúrate de tener Node.js y todos los módulos requeridos instalados correctamente. Si el problema persiste, es posible que el problema esté relacionado con la propia imagen.

  5. ¿Puedo ajustar el nivel de compresión? Sí, el complemento imagemin-webp te permite ajustar el parámetro de calidad para controlar el nivel de compresión.

Volver a todos los artículosInicio