Modul rychlého a rychlého zpracování obrazu v Node.js

Sharp je modul pro zpracování obrazu, který využívá knihovnu libvips k zajištění rychlého zpracování projektů Node.js.

Sharp je modul pro rychlé zpracování obrázků pro projekty Node.js, které využívají knihovnu pro zpracování obrázků libvips. Díky tomuto přídavku má Sharp, jak název napovídá, vysokorychlostní výpočetní výkon, protože ukládá pouze několik oblastí nekomprimovaných obrazových dat do paměti, čímž uvolňuje velkou část spotřebovaného výkonu CPU a mezipaměti L1/L2/L3.

Knihovna také zajišťuje, že se nevytvářejí žádné podřízené procesy a jsou podporovány asynchronní nebo čekající procesy. Jako modul pro zpracování obrázků s otevřeným zdrojovým kódem podporuje Sharp více formátů obrázků a také nekomprimovaná nezpracovaná pixelová data. Pro optimální výkon se ujistěte, že používáte Node.js verze 10 a vyšší.

Previous Next

Začínáme s Sharp

Doporučený způsob instalace Sharp přes NPM. K instalaci použijte následující příkaz.

Nainstalujte Sharp přes NPM

 npm install sharp 

Změňte velikost obrázků pomocí bezplatného JavaScript API

Otevřít zdroj ostrý knihovna umožňuje JavaScript vývojářům změnit velikost obrázků programmaticky. Sharp umožňuje převést velké formáty obrázků do menších velikostí, které jsou kompatibilní s různými webovými aplikacemi. S pomocí ostré knihovny má Sharp 4 až 5 krát rychlejší rychlost zpracování obrazu ve srovnání s jinými konvertory formátu obrázků, jako je ImageMagick nebo GraphicsMagick. Sharp zajišťuje, že kvalita obrazu není ohrožena modulem vzorkování Lancers.

Číst a měnit velikost obrázků pomocí JavaScriptu

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)

Zpracování obrázků přes bezplatné JavaScript API

Ostrá knihovna umožňuje vývojářům softwaru zpracovat obraz v rámci JavaScriptu. Můžete provádět operace s obrazem, jako je změna velikosti obrazu, otáčení, extrahování, opravy a kompozice. Sharp je kompatibilní se systémy MacOS, Windows a Linux a při používání Node.js verze 10 a vyšší nevyžaduje žádné další instalace.

Extrahujte obrázek z oblasti pomocí JavaScriptu

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

Otočit obrázek přes 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();

Práce s metadaty obrázků v aplikacích JavaScript

Ostrá knihovna s otevřeným zdrojovým kódem obsahovala plnou podporu pro práci s metadaty obrázků v aplikacích JavaScript. Knihovna poskytuje rychlý přístup k obrazovým metadatům bez dekódování jakýchkoli komprimovaných pixelových dat. Obsahuje podporu pro několik důležitých vlastností, jako je velikost obrázku, formát, výška, šířka, hloubka, hustota, prostor, úrovně, pozadí, exif, hasprofile, stránka a mnoho dalších. Můžete také snadno přistupovat k obrazovým statistikám odvozeným od pixelů pro každý kanál v obraze, jako je min., max., součet, průměr, ostrost, entropie a mnoho dalších.

Přístup k metadatům obrázků přes 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
  });
 Čeština