Moduł szybkiego i szybkiego przetwarzania obrazu w Node.js

Sharp to moduł przetwarzania obrazu, który wykorzystuje bibliotekę libvips, aby zapewnić szybkie przetwarzanie projektów Node.js.

Sharp to moduł szybkiego przetwarzania obrazu dla projektów Node.js, które są obsługiwane przez bibliotekę przetwarzania obrazu libvips. Dzięki temu dodatkowi, Sharp, jak sugeruje nazwa, ma dużą moc przetwarzania, ponieważ przechowuje w pamięci tylko kilka regionów nieskompresowanych danych obrazu, zwalniając znaczną część używanej mocy procesora i pamięci podręcznej L1/L2/L3

Biblioteka zapewnia również, że żadne procesy podrzędne nie są tworzone, a procesy asynchroniczne lub await są obsługiwane. Jako moduł przetwarzania obrazu o otwartym kodzie źródłowym, Sharp obsługuje wiele formatów obrazu oraz nieskompresowane surowe dane pikseli. Aby uzyskać optymalną wydajność, upewnij się, że używasz Node.js w wersji 10 lub nowszej.

Previous Next

Pierwsze kroki z Sharp

Zalecany sposób instalacji Sharp przez NPM. Użyj następującego polecenia, aby go zainstalować.

Zainstaluj Sharp przez NPM

 npm install sharp 

Zmień rozmiar obrazów za pomocą bezpłatnego interfejsu API JavaScript

Otwarta biblioteka pozwala JavaScript deweloperom na programowanie obrazów. Sharp pozwala na konwersję dużych formatów obrazów w mniejsze rozmiary, które są kompatybilne z różnymi aplikacjami internetowymi. Z pomocą ostrej biblioteki Sharp ma 4 do 5 razy szybszą prędkość przetwarzania obrazu w porównaniu z innymi przetwornikami formatu obrazu, takimi jak ImageMagick lub GraphicsMagick. Sharp zapewnia, że jakość obrazu nie jest naruszona przez moduł pobierania próbek Lancers.

Czytaj i zmieniaj rozmiar obrazów za pomocą 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)

Przetwarzanie obrazu przez bezpłatny interfejs API JavaScript

Biblioteka Sharp umożliwia programistom przetwarzanie obrazu w środowisku JavaScript. Możesz wykonywać operacje na obrazach, takie jak zmiana rozmiaru, obracanie, wyodrębnianie, korekty i komponowanie. Sharp jest kompatybilny z systemami MacOS, Windows i Linux i nie wymaga żadnych dodatkowych instalacji podczas korzystania z Node.js w wersji 10 i nowszych.

Wyodrębnij obraz z regionu za pomocą 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
  });

Obróć obraz za pomocą interfejsu API JavaScript

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

Praca z metadanymi obrazu w aplikacjach JavaScript

Biblioteka sharp open source zawiera pełne wsparcie dla pracy z metadanymi obrazu w aplikacjach JavaScript. Biblioteka zapewnia szybki dostęp do metadanych obrazu bez dekodowania skompresowanych danych pikseli. Zawiera obsługę kilku ważnych właściwości, takich jak rozmiar obrazu, format, wysokość, szerokość, głębokość, gęstość, przestrzeń, poziomy, tło, exif, hasprofile, strona i wiele innych. Możesz także łatwo uzyskać dostęp do statystyk obrazu pochodzących z pikseli dla każdego kanału na obrazie, takich jak min, maks, suma, średnia, ostrość, entropia i wiele innych.

Uzyskaj dostęp do metadanych obrazu za pomocą 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
  });
 Polski