Saltar al contenido

Node.js: cambio de tamaño de imagen sin ImageMagick

Nuestro team de especialistas despúes de días de investigación y de recopilar de información, dieron con los datos necesarios, queremos que te sea útil en tu trabajo.

Solución:

Votaría por agudo:

sharp('input.jpg')
  .resize(200, 200)
  .toFile('ouput.jpg', function(err) 
    // output.jpg is a 200 pixels wide and 200 pixels high image
    // containing a scaled and cropped version of input.jpg
  );

Es rápido, generalmente 6 veces más rápido que los enlaces de nodos basados ​​en imagemagick más rápidos, y se ejecuta en muy poca memoria, quizás 10 veces menos. enlaces nítidos a la biblioteca de imágenes libvips directamente, no hay que desembolsar un programa externo, y la biblioteca en sí es más rápida y más eficiente que *magia en esta tarea. Admite cosas útiles como flujo, búfer y entrada y salida del sistema de archivos, gestión del color, transparencia, promesas, superposiciones, WebP, SVG y más.

A partir de sharp 0.20, npm descargará automáticamente archivos binarios precompilados completos en la mayoría de las plataformas, por lo que no es necesario utilizar node-gyp. Solo ingresa:

npm install sharp

o:

yarn add sharp

Y listo.

Recientemente comencé a desarrollar un módulo de procesamiento de imágenes para NodeJS sin dependencias de tiempo de ejecución (lea por qué). Todavía está en las primeras etapas, pero ya se puede usar.

Lo que pides se haría de la siguiente manera:

image.resize(200, 200, function(err, image)
    // encode resized image to jpeg and get a Buffer object
    image.toBuffer('jpg', function(err, buffer)
        // save buffer to disk / send over network / etc.
    );
);

Más información en el repositorio de Github del módulo.

Eche un vistazo a lwip: https://github.com/EyalAr/lwip

Muy simple y facil de usar

npm install lwip

y luego en su código de nodo,

// obtain an image object:
require('lwip').open('image.jpg', function(err, image)

  // check err...
  // define a batch of manipulations and save to disk as JPEG:
  image.batch()
    .scale(0.75)          // scale to 75%
    .rotate(45, 'white')  // rotate 45degs clockwise (white fill)
    .crop(200)            // crop a 200X200 square from center
    .blur(5)              // Gaussian blur with SD=5
    .writeFile('output.jpg', function(err)
      // check err...
      // done.
    );

);

He implementado con éxito esto en mi cargador de archivos y funciona de maravilla.

Reseñas y calificaciones del artículo

Nos puedes animar nuestra labor fijando un comentario o dejando una puntuación te lo agradecemos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *