Greitas ir greitas vaizdo apdorojimo modulis Node.js

„Sharp“ yra vaizdo apdorojimo modulis, kuris naudoja libvips biblioteką, kad užtikrintų greitą Node.js projektų apdorojimą.

„Sharp“ yra greito apdorojimo vaizdo modulis, skirtas Node.js projektams, kuriuos maitina libvips vaizdo apdorojimo biblioteka. Dėl šio papildymo „Sharp“, kaip rodo pavadinimas, turi didelės spartos apdorojimo galią, nes atmintyje saugo tik kelis nesuspaustų vaizdo duomenų regionus, atlaisvindamas daug naudotos procesoriaus galios ir L1/L2/L3 talpyklos.

Biblioteka taip pat užtikrina, kad nebūtų sukurti antriniai procesai ir būtų palaikomi asinchroniniai arba laukimo procesai. Kaip atvirojo kodo vaizdo apdorojimo modulis, Sharp palaiko kelis vaizdo formatus ir nesuspaustus neapdorotus pikselių duomenis. Kad našumas būtų optimalus, įsitikinkite, kad naudojate Node.js 10 ir naujesnę versiją.

Previous Next

Darbo su Sharp pradžia

Rekomenduojamas būdas įdiegti „Sharp“ per NPM. Norėdami ją įdiegti, naudokite šią komandą.

Įdiekite „Sharp“ per NPM

 npm install sharp 

Pakeiskite vaizdų dydį naudodami nemokamą „JavaScript“ API

Atvirojo kodo aiški biblioteka leidžia „JavaScript“ kūrėjams programiškai keisti vaizdų dydį. „Sharp“ leidžia konvertuoti didelius vaizdo formatus į mažesnius dydžius, suderinamus su įvairiomis žiniatinklio programomis. Naudodamas ryškų biblioteką, Sharp turi 4–5 kartus didesnį vaizdo apdorojimo greitį, palyginti su kitais vaizdo formato keitikliais, tokiais kaip ImageMagick arba GraphicsMagick. „Sharp“ užtikrina, kad vaizdo kokybei nepakenktų Lanczos resampling modulis.

Skaitykite vaizdus ir pakeiskite jų dydį naudodami „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)

Vaizdo apdorojimas naudojant nemokamą JavaScript API

Ryški biblioteka leidžia programinės įrangos kūrėjams apdoroti vaizdą JavaScript sistemoje. Galite atlikti tokias vaizdo operacijas kaip vaizdo dydžio keitimas, pasukimas, ištraukimas, taisymas ir komponavimas. „Sharp“ yra suderinamas su „MacOS“, „Windows“ ir „Linux“ sistemomis ir nereikalauja jokių papildomų diegimų, kai naudojate „Node.js“ 10 ir naujesnę versiją.

Ištraukite vaizdą iš regiono naudodami „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
  });

Pasukti vaizdą per 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();

Dirbkite su vaizdo metaduomenimis „JavaScript“ programose

Atvirojo kodo aštri biblioteka apima visišką palaikymą darbui su vaizdo metaduomenimis „JavaScript“ programose. Biblioteka suteikia greitą prieigą prie vaizdo metaduomenų, neiššifruojant jokių suspaustų pikselių duomenų. Jame buvo palaikomos kelios svarbios savybės, pvz., vaizdo dydis, formatas, aukštis, plotis, gylis, tankis, erdvė, lygiai, fonas, exif, hasprofile, puslapis ir daug daugiau. Taip pat galite lengvai pasiekti kiekvieno vaizdo kanalo vaizdo statistiką, gaunamą iš pikselių, pvz., min, max, sumą, vidurkį, ryškumą, entropiją ir daug daugiau.

Pasiekite vaizdo metaduomenis naudodami „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
  });
 Lietuvių