Швидкий і швидкий модуль обробки зображень у Node.js
Sharp — це модуль обробки зображень, який використовує бібліотеку libvips для забезпечення швидкої обробки проектів Node.js.
Sharp — це модуль швидкої обробки зображень для проектів Node.js, які працюють на основі бібліотеки обробки зображень libvips. Завдяки цьому доповненню Sharp, як випливає з назви, має високу швидкість обробки, оскільки зберігає лише кілька областей нестиснених даних зображення в пам’яті, звільняючи значну частину використаної потужності ЦП і кеша L1/L2/L3
Бібліотека також забезпечує відсутність дочірніх процесів і підтримку асинхронних процесів або процесів очікування. Будучи модулем обробки зображень з відкритим кодом, Sharp підтримує численні формати зображень, а також нестиснені необроблені піксельні дані. Для оптимальної продуктивності переконайтеся, що ви використовуєте Node.js версії 10 і вище.
Початок роботи з 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
});