Модул за бърза и бърза обработка на изображения в 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
Отворената библиотека позволява на 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
});