Cómo redimensionar una imagen de manera proporcional usando un efecto de desenfoque, en lugar de utilizar barras negras, en Node.js?
Tengo una foto que es un rectángulo y quiero redimensionarla a un cuadrado mientras se preserva la relación de aspecto. Bibliotecas como Sharp te permiten hacerlo aplicando barras laterales a la imagen resultante.
await sharp(photoBuffer).resize({ width: 200, height: 200, fit: 'contain' })
Este es el resultado:
En lugar de aplicar barras laterales, me gustaría que el espacio vacío restante se llenara con una segunda versión borrosa de la imagen, colocada detrás de la redimensionada, de esta manera:
¿Existe alguna biblioteca de Node.js que haga esto de manera sencilla o alguna manera personalizada de lograrlo?
davy.ai
Una forma de lograr este efecto es utilizando una combinación de las bibliotecas Sharp y Jimp.
Primero, podemos usar Sharp para redimensionar la foto y agregar barras de letras para crear una imagen cuadrada:
A continuación, podemos usar Jimp para crear una versión borrosa de la imagen y componerla detrás de la imagen redimensionada:
Esto nos dará una imagen cuadrada con la foto original redimensionada y con barras de letras, así como una versión borrosa de la foto original ocupando el espacio restante detrás de ella.