Módulo de procesamiento de imágenes rápido y rápido en Node.js

Sharp es un módulo de procesamiento de imágenes que utiliza la biblioteca libvips para proporcionar un procesamiento rápido para los proyectos de Node.js.

Sharp es un módulo de imagen de procesamiento rápido para proyectos de Node.js que funcionan con la biblioteca de procesamiento de imágenes libvips. Debido a esta adición, Sharp, como sugiere el nombre, tiene una potencia de procesamiento de alta velocidad, ya que solo almacena unas pocas regiones de los datos de imagen sin comprimir en la memoria, lo que libera gran parte de la potencia de la CPU utilizada y la caché L1/L2/L3.

La biblioteca también se asegura de que no se generen procesos secundarios y que se admitan procesos asíncronos o en espera. Como módulo de procesamiento de imágenes de código abierto, Sharp admite múltiples formatos de imagen y también datos de píxeles sin comprimir. Para obtener un rendimiento óptimo, asegúrese de utilizar Node.js versión 10 y superior.

Previous Next

Primeros pasos con Sharp

La forma recomendada de instalar Sharp a través de NPM. Utilice el siguiente comando para instalarlo.

Instalar Sharp a través de NPM

 npm install sharp 

Cambiar el tamaño de las imágenes a través de la API de JavaScript gratuita

La biblioteca filosa de fuente abierta permite a JavaScript desarrolladores resize imágenes programáticamente. Sharp le permite convertir grandes formatos de imagen en tamaños más pequeños que son compatibles con diferentes aplicaciones web. Con la ayuda de la biblioteca afilada, Sharp tiene una velocidad de procesamiento de imágenes 4 a 5 veces más rápida que otros convertidores de formato de imagen como ImageMagick o GraphicsMagick. Sharp asegura que la calidad de la imagen no está comprometida por el módulo de muestreo Lancers.

Lee Resize Images vía JavaScript

const transformer = sharp()
  .resize({
    width: 200,
    height: 200,
    fit: sharp.fit.cover,
    position: sharp.strategy.entropy
  });
// Read image data from readableStream
// Write 200px square auto-cropped image data to writableStream
readableStream
  .pipe(transformer)
  .pipe(writableStream)

Procesamiento de imágenes a través de la API de JavaScript gratuita

La filosa biblioteca permite a los desarrolladores de software procesar la imagen en el marco de JavaScript . Puede realizar operaciones de imagen como residir imagen, rotación, extracción, correcciones y composición. Sharp es compatible con MacOS, Windows y sistemas Linux y no requiere ninguna instalación adicional cuando se utiliza la versión 10 y superior de Node.js.

Imagen extraída de una región a través de JavaScript

sharp(input)
  .extract({ left: leftOffsetPre, top: topOffsetPre, width: widthPre, height: heightPre })
  .resize(width, height)
  .extract({ left: leftOffsetPost, top: topOffsetPost, width: widthPost, height: heightPost })
  .toFile(output, function(err) {
    // Extract a region, resize, then extract from the resized image
  });

Imagen rotativa vía JavaScript API

const rotateThenResize = await sharp(input)
  .rotate(90)
  .resize({ width: 16, height: 8, fit: 'fill' })
  .toBuffer();
const resizeThenRotate = await sharp(input)
  .resize({ width: 16, height: 8, fit: 'fill' })
  .rotate(90)
  .toBuffer();

Trabajo con Image Metadata en JavaScript aplicaciones

La biblioteca filosa fuente abierta ha incluido soporte completo para trabajar con Image Metadata dentro de JavaScript aplicaciones. La biblioteca proporciona acceso rápido a metadatos de imagen sin decodificar datos de píxeles comprimidos. Ha incluido soporte para varias propiedades importantes como tamaño de imagen, formato, altura, anchura, profundidad, densidad, espacio, niveles, fondo, salida, dsprofile, página y muchos más. También puede acceder fácilmente a las estadísticas de imagen obtenidas por píxeles para cada canal en la imagen como min, max, suma, media, afilitud, entropía, y muchos más.

Acceso de la imagen Metadata vía JavaScript

const image = sharp(inputJpg);
image
  .metadata()
  .then(function(metadata) {
    return image
      .resize(Math.round(metadata.width / 2))
      .webp()
      .toBuffer();
  })
  .then(function(data) {
    // data contains a WebP image half the width and height of the original JPEG
  });
 Español