Об этом проекте

sharp — это высокоскоростной Node-API модуль для обработки изображений, предназначенный в первую очередь для преобразования больших изображений в распространённых форматах в меньшие, веб-ориентированные файлы JPEG, PNG, WebP, GIF и AVIF с различными размерами. Он построен на библиотеке libvips. Он работает со всеми средами выполнения JavaScript, поддерживающими Node-API v9, включая Node.js (>= 20.9.0), Deno и Bun. Согласно проекту, изменение размера изображения обычно происходит в 4–5 раз быстрее, чем при самых быстрых настройках ImageMagick и GraphicsMagick, благодаря libvips. Помимо изменения размера, модуль обрабатывает цветовые пространства, встроенные ICC-профили и альфа-каналы прозрачности, а также использует ресемплинг Ланцоша для сохранения качества. Дополнительные операции включают поворот, извлечение, композитинг и гамма-коррекцию. Большинство современных систем macOS, Windows и Linux не требуют дополнительной установки или зависимостей времени выполнения. Использование простое: установите через npm, импортируйте или подключите модуль, затем выстраивайте цепочки операций, такие как resize, autoOrient, jpeg и toFile или toBuffer. Также поддерживается создание изображений с нуля, наложение SVG-оверлеев (например, скруглённых углов) и потоковая передача через pipe. Полные инструкции по установке, документация API, тесты производительности и журнал изменений доступны на sharp.pixelplumbing.com. Проект лицензирован под Apache-2.0 и приветствует вклад через руководство для контрибьюторов.