Модуль быстрой и быстрой обработки изображений в 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
Библиотека Sharp с открытым исходным кодом позволяет разработчикам JavaScript программно изменять размер изображений. Sharp позволяет преобразовывать большие форматы изображений в меньшие размеры, совместимые с различными веб-приложениями. С помощью библиотеки Sharp скорость обработки изображений Sharp в 4-5 раз выше, чем у других конвертеров форматов изображений, таких как ImageMagick или GraphicsMagick. Sharp гарантирует, что модуль повторной выборки Lanczos не повлияет на качество изображения.
Читать и изменять изображения через 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
Резкая библиотека позволяет разработчикам программного обеспечения обрабатывать изображение в 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
});
Rotate 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();
Работа с Image Metadata в JavaScript Приложениях
Резкая библиотека с открытым исходным кодом включала полную поддержку работы с Image Metadata внутри JavaScript приложений. Библиотека обеспечивает быстрый доступ к метаданным изображений без расшифровки любых данных сжатого пикселя. Он включал поддержку нескольких важных свойств, таких как размер изображения, формат, высота, ширина, глубина, плотность, пространство, уровни, фон, выход, профил, страница и многое другое. Вы также можете легко получить доступ к пиксельной статистике изображений для каждого канала в изображении, таких как min, max, sum, mean, stressness, entropy и многих других.
Метаданные доступа через 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
});