Модул за бърза и бърза обработка на изображения в Node.js

Sharp е модул за обработка на изображения, който използва библиотеката libvips, за да осигури бърза обработка за Node.js проекти.

Sharp е модул за бързо обработване на изображения за Node.js проекти, които се захранват от библиотеката за обработка на изображения libvips. Благодарение на това допълнение, Sharp, както подсказва името, има висока скорост на обработка, тъй като съхранява само няколко области от некомпресираните данни за изображение в паметта, освобождавайки голяма част от използваната мощност на процесора и L1/L2/L3 кеш памет

Библиотеката също така гарантира, че не се създават дъщерни процеси и че се поддържат асинхронни или чакащи процеси. Като модул за обработка на изображения с отворен код, Sharp поддържа множество формати на изображения, както и некомпресирани необработени пикселни данни. За оптимална производителност се уверете, че използвате Node.js версия 10 и по-нова.

Previous Next

Първи стъпки с Sharp

Препоръчителният начин за инсталиране на Sharp чрез NPM. Моля, използвайте следната команда, за да го инсталирате.

Инсталирайте Sharp чрез NPM

 npm install sharp 

Преоразмеряване на изображения чрез безплатен JavaScript API

Отворената библиотека позволява на JavaScript разработчици да преоразмеряват изображенията програмно. Sharp ви позволява да конвертирате големи формати на изображения в по-малки размери, които са съвместими с различни уеб приложения. С помощта на острата библиотека, Sharp има 4 до 5 пъти по-бърза скорост на обработка на изображения в сравнение с други конвертори на изображения като ImageMagick или GraphicsMagick. Sharp гарантира, че качеството на изображението не е компрометирано от модула Lancers вземане на проби.

Четете и преоразмерявайте изображения чрез 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)

Обработка на изображения чрез безплатен JavaScript API

Sharp библиотеката позволява на разработчиците на софтуер да обработват изображението в рамката на JavaScript. Можете да извършвате операции с изображения като преоразмеряване на изображението, завъртане, извличане, корекции и композиране. Sharp е съвместим с MacOS, Windows и Linux системи и не изисква допълнителни инсталации при използване на Node.js версия 10 и по-нова.

Извличане на изображение от регион чрез 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
  });

Завъртете изображение чрез 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();

Работете с метаданни за изображения в приложения на JavaScript

Библиотеката Sharp с отворен код включва пълна поддръжка за работа с метаданни за изображения в приложения на JavaScript. Библиотеката осигурява бърз достъп до метаданните на изображението без декодиране на компресирани пикселни данни. Той включва поддръжка за няколко важни свойства като размер на изображението, формат, височина, ширина, дълбочина, плътност, пространство, нива, фон, exif, hasprofile, страница и много други. Можете също така лесно да получите достъп до статистически данни за изображението, извлечени от пиксели, за всеки канал в изображението, като мин., макс., сума, средна стойност, острота, ентропия и много други.

Достъп до метаданните на изображението чрез 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
  });
 Български