Gyors és gyors képfeldolgozási modul a Node.js-ben

A Sharp egy képfeldolgozó modul, amely a libvips könyvtárat használja a Node.js projektek gyors feldolgozásához.

A Sharp egy gyors feldolgozó képmodul a Node.js projektekhez, amelyeket a libvips képfeldolgozó könyvtár működtet. Ennek a kiegészítésnek köszönhetően a Sharp, ahogy a név is sugallja, nagy sebességű feldolgozási teljesítménnyel rendelkezik, mivel a tömörítetlen képadatoknak csak néhány régióját tárolja a memóriában, felszabadítva a felhasznált CPU teljesítmény és az L1/L2/L3 gyorsítótár nagy részét.

A könyvtár gondoskodik arról is, hogy ne keletkezzenek gyermekfolyamatok, és az aszinkron vagy várakozási folyamatok is támogatottak legyenek. Nyílt forráskódú képfeldolgozó modulként a Sharp többféle képformátumot és tömörítetlen nyers pixeladatokat is támogat. Az optimális teljesítmény érdekében győződjön meg arról, hogy a Node.js 10-es vagy újabb verzióját használja.

Previous Next

A Sharp első lépései

A Sharp NPM-en keresztüli telepítésének javasolt módja. Kérjük, használja a következő parancsot a telepítéshez.

Telepítse a Sharp-ot NPM-en keresztül

 npm install sharp 

Képek átméretezése ingyenes JavaScript API-n keresztül

A nyílt forráskódú éles könyvtár lehetővé teszi a JavaScript-fejlesztők számára a képek programozott átméretezését. A Sharp lehetővé teszi a nagy képformátumok kisebb méretűvé alakítását, amelyek kompatibilisek a különböző webes alkalmazásokkal. Az éles könyvtár segítségével a Sharp 4-5-ször gyorsabb képfeldolgozási sebességgel rendelkezik, mint más képformátum-átalakítók, mint például az ImageMagick vagy a GraphicsMagick. A Sharp gondoskodik arról, hogy a képminőséget ne rontsa a Lanczos újramintavételező modulja.

Képek olvasása és átméretezése JavaScript segítségével

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)

Képfeldolgozás ingyenes JavaScript API-n keresztül

Az éles könyvtár lehetővé teszi a szoftverfejlesztők számára, hogy a JavaScript keretrendszerben dolgozzák fel a képet. Olyan képműveleteket hajthat végre, mint a kép átméretezése, elforgatása, kibontása, korrekciója és kompozíciója. A Sharp kompatibilis a MacOS, Windows és Linux rendszerekkel, és nem igényel további telepítést a Node.js 10-es és újabb verzióinak használatakor.

Kép kibontása egy régióból JavaScript segítségével

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
  });

Kép elforgatása JavaScript API-n keresztül

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();

Dolgozzon képmetaadatokkal a JavaScript-alkalmazásokban

A nyílt forráskódú éles könyvtár teljes mértékben támogatja a JavaScript alkalmazásokon belüli képmetaadatokkal való munkát. A könyvtár gyors hozzáférést biztosít a kép metaadataihoz anélkül, hogy dekódolná a tömörített pixeladatokat. Számos fontos tulajdonság támogatását tartalmazza, mint például a képméret, formátum, magasság, szélesség, mélység, sűrűség, tér, szintek, háttér, exif, hasprofile, oldal és még sok más. Könnyedén hozzáférhet a képpontokból származó képstatisztikákhoz a kép minden csatornájához, például min, max, összeg, átlag, élesség, entrópia és még sok máshoz.

A kép metaadatainak elérése JavaScripten keresztül

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
  });
 Magyar