Rask og rask bildebehandlingsmodul i Node.js

Sharp er en bildebehandlingsmodul som bruker libvips-biblioteket for å gi rask behandling for Node.js-prosjekter.

Sharp er en bildemodul for rask prosessering for Node.js-prosjekter som drives av libvips bildebehandlingsbibliotek. På grunn av dette tillegget har Sharp, som navnet antyder, en høyhastighets prosessorkraft da den bare lagrer noen få områder av de ukomprimerte bildedataene i minnet og frigjør mye av den brukte CPU-kraften og L1/L2/L3-cachen.

Biblioteket sørger også for at ingen underordnede prosesser blir skapt og async- eller vent-prosesser støttes. Som en åpen kildekode-bildebehandlingsmodul støtter Sharp flere bildeformater og ukomprimerte råpikseldata også. For optimal ytelse, sørg for at du bruker Node.js versjon 10 og nyere.

Previous Next

Komme i gang med Sharp

Den anbefalte måten å installere Sharp på via NPM. Bruk følgende kommando for å installere den.

Installer Sharp via NPM

 npm install sharp 

Endre størrelse på bilder via gratis JavaScript API

Sharp-biblioteket med åpen kildekode lar JavaScript-utviklere endre størrelsen på bilder programmatisk. Sharp lar deg konvertere store bildeformater til mindre størrelser som er kompatible med forskjellige nettapplikasjoner. Ved hjelp av det skarpe biblioteket har Sharp en 4 til 5 ganger raskere bildebehandlingshastighet sammenlignet med andre bildeformatkonverterere som ImageMagick eller GraphicsMagick. Sharp sikrer at bildekvaliteten ikke kompromitteres av Lanczos resamplingmodul.

Les og endre størrelse på bilder via 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)

Bildebehandling via gratis JavaScript API

Det skarpe biblioteket gjør det mulig for programvareutviklere å behandle bildet i JavaScript-rammeverket. Du kan utføre bildeoperasjoner som endring av bildestørrelse, rotering, uttrekking, korrigeringer og komposisjon. Sharp er kompatibel med MacOS-, Windows- og Linux-systemer og krever ingen ekstra installasjoner når du bruker Node.js versjon 10 og nyere.

Trekk ut bilde fra en region via 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
  });

Roter bilde via 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();

Arbeid med bildemetadata i JavaScript-apper

Sharp-biblioteket med åpen kildekode har inkludert full støtte for arbeid med bildemetadata i JavaScript-applikasjoner. Biblioteket gir rask tilgang til bildemetadata uten å dekode noen komprimerte pikseldata. Den har inkludert støtte for flere viktige egenskaper som bildestørrelse, format, høyde, bredde, dybde, tetthet, plass, nivåer, bakgrunn, exif, hasprofile, side og mange flere. Du kan også enkelt få tilgang til pikselavledet bildestatistikk for hver kanal i bildet, for eksempel min, maks, sum, gjennomsnitt, skarphet, entropi og mange flere.

Få tilgang til bildemetadata via 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
  });
 Norsk