Швидкий і швидкий модуль обробки зображень у 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

Русский EnglishРусскийУкраїнськаPolskiItalianoEspañol汉语Bahasa Indonesiaहिन्दीPortuguês日本語DeutschFrançaisภาษาไทยελληνικά اللغة العربية Sharp дозволяє конвертувати великі формати зображень в менші розміри, які сумісні з різними веб-додатками. За допомогою різкої бібліотеки, Sharp має швидкість обробки 4 до 5 разів швидше, порівняно з іншими конвертерами форматів зображень, такими як ImageMagick або GraphicsMagick. Для того, щоб якість зображення не була порушена модулем відбору 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
  });
 Українська