Автономный HTTP-сервер, который на лету изменяет размер и обрезает изображения, применяет к ним эффекты и конвертирует их по параметрам, заданным в URL.
lovell/sharp
Высокопроизводительный модуль обработки изображений для Node.js: меняет размер и конвертирует JPEG, PNG, WebP, AVIF и TIFF с помощью libvips.
Open source альтернатива:ImageMagick
- Звёзды
- 32,830
- Форки
- 1,450
- Открытые issues
- 121
- Последний коммит
- позавчера
Что это?
sharp — это модуль Node-API для обработки изображений в Node.js. Обычно его используют, чтобы преобразовывать большие изображения распространённых форматов в файлы меньшего размера, удобные для веба: JPEG, PNG, WebP, GIF и AVIF с разными размерами. Модуль построен на библиотеке libvips; по данным проекта, благодаря ей изменение размера выполняется в несколько раз быстрее, чем при самых быстрых настройках ImageMagick и GraphicsMagick.
Помимо изменения размера, sharp поддерживает поворот, обрезку, композитинг и гамма-коррекцию. Модуль обрабатывает цветовые пространства, встроенные ICC-профили и альфа-прозрачность, а для качественного ресэмплинга использует алгоритм Lanczos. Операции можно объединять в цепочки и выполнять над буфером, файлом или потоком.
Модуль работает в любой среде выполнения JavaScript с поддержкой Node-API v9, включая Node.js 20.9.0 и более поздние версии, Deno и Bun. На большинстве современных систем macOS, Windows и Linux не требуется дополнительная установка или зависимости среды выполнения.
Ключевые возможности
- 01Изменяет размер и конвертирует изображения JPEG, PNG, WebP, GIF и AVIF.
- 02Поддерживает поворот, обрезку, композитинг и гамма-коррекцию.
- 03Обрабатывает ICC-профили, ориентацию EXIF и альфа-прозрачность.
- 04Работает с буферами, файлами и потоками.
- 05Запускается в Node.js, Deno и Bun через Node-API v9.
Сценарии использования
- Генерация миниатюр для веба и изображений разных размеров при загрузке.
- Пакетная конвертация больших фотографий в WebP или AVIF в процессе сборки или обработки медиаданных.
- Создание скруглённых углов, водяных знаков и наложений с помощью композитинга SVG на сервере.
Быстрый старт
- 1
Установите sharp из npm
npm install sharp - 2
Импортируйте sharp или подключите его с помощью require в коде
- 3
Измените размер изображения и сохраните его в файл WebP
Что важно знать
- Требуется поддержка Node-API v9, например в Node.js 20.9.0 или более поздней версии.
В подборках
Темы
Частые вопросы
- Что такое sharp?
- Высокопроизводительный модуль обработки изображений для Node.js: меняет размер и конвертирует JPEG, PNG, WebP, AVIF и TIFF с помощью libvips. sharp — это модуль Node-API для обработки изображений в Node.js. Обычно его используют, чтобы преобразовывать большие изображения распространённых форматов в файлы меньшего размера, удобные для веба: JPEG, PNG, WebP, GIF и AVIF с разными размерами. Модуль построен на библиотеке libvips; по данным проекта, благодаря ей изменение размера выполняется в несколько раз быстрее, чем при самых быстрых настройках ImageMagick и GraphicsMagick.
- sharp можно использовать бесплатно? Какая у него лицензия?
- sharp распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- sharp всё ещё поддерживается?
- Активно поддерживается. Последний коммит в sharp — 5 нояб. 2026 г..
- Для чего можно использовать sharp?
- Генерация миниатюр для веба и изображений разных размеров при загрузке. Пакетная конвертация больших фотографий в WebP или AVIF в процессе сборки или обработки медиаданных. Создание скруглённых углов, водяных знаков и наложений с помощью композитинга SVG на сервере.
- Как установить sharp?
- Установите sharp из npm: npm install sharp Импортируйте sharp или подключите его с помощью require в коде Измените размер изображения и сохраните его в файл WebP
- Где скачать sharp?
- Исходный код и инструкции по установке — на GitHub: https://github.com/lovell/sharp
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Go-сервер, который на лету конвертирует JPEG, PNG, BMP, GIF, SVG и другие изображения в WebP или AVIF, не меняя URL.
Сервис в Docker на лету меняет размер, обрезает и сжимает изображения по параметрам URL, кэширует результат и поддерживает AVIF/WebP/MozJPEG.
Настольный компрессор изображений для Windows, macOS и Linux: уменьшает размер файлов JPG, PNG, WebP и TIFF, а при необходимости — и разрешение.
Лосси-компрессор PNG без ползунка качества: подбирает изображение с палитрой минимального размера, которое сохраняет заданное визуальное качество; доступен в CLI и браузере.
Десктопный конвертер изображений для Windows и Linux: пакетное преобразование в JPEG XL, AVIF, WebP, JPEG и PNG с возможностью уменьшения размера.