Типичным вариантом использования этого высокоскоростного модуля Node-API является преобразование больших изображений в распространенных форматах в меньшие, удобные для Интернета изображения JPEG, PNG, WebP, GIF и AVIF различных размеров.
Его можно использовать со всеми средами выполнения JavaScript, которые обеспечивают поддержку Node-API v9, включая Node.js (^18.17.0 или >= 20.3.0), Deno и Bun.
Изменение размера изображения обычно происходит в 4–5 раз быстрее, чем при использовании самых быстрых настроек ImageMagick и GraphicsMagick, благодаря использованию libvips.
Цветовые пространства, встроенные профили ICC и каналы альфа-прозрачности обрабатываются правильно. Повторная выборка Ланцоша гарантирует, что качество не будет принесено в жертву скорости.
Помимо изменения размера изображения доступны такие операции, как вращение, извлечение, композитинг и гамма-коррекция.
Большинство современных систем macOS, Windows и Linux не требуют каких-либо дополнительных зависимостей при установке или выполнении.
Посетите сайт Sharp.pixelplumbing.com, чтобы получить полные инструкции по установке, документацию API, тесты производительности и журнал изменений.
npm install sharp
const sharp = require ( 'sharp' ) ;
sharp ( inputBuffer )
. resize ( 320 , 240 )
. toFile ( 'output.webp' , ( err , info ) => { ... } ) ;
sharp ( 'input.jpg' )
. rotate ( )
. resize ( 200 )
. jpeg ( { mozjpeg : true } )
. toBuffer ( )
. then ( data => { ... } )
. catch ( err => { ... } ) ;
const semiTransparentRedPng = await sharp ( {
create : {
width : 48 ,
height : 48 ,
channels : 4 ,
background : { r : 255 , g : 0 , b : 0 , alpha : 0.5 }
}
} )
. png ( )
. toBuffer ( ) ;
const roundedCorners = Buffer . from (
'<svg><rect x="0" y="0" width="200" height="200" rx="50" ry="50"/></svg>'
) ;
const roundedCornerResizer =
sharp ( )
. resize ( 200 , 200 )
. composite ( [ {
input : roundedCorners ,
blend : 'dest-in'
} ] )
. png ( ) ;
readableStream
. pipe ( roundedCornerResizer )
. pipe ( writableStream ) ;
Руководство для участников описывает сообщение об ошибках, запрос функций и отправку изменений кода.
Авторские права принадлежат Ловеллу Фуллеру и другим, 2013 г.
Лицензируется по лицензии Apache версии 2.0 («Лицензия»); вы не можете использовать этот файл, кроме как в соответствии с Лицензией. Вы можете получить копию Лицензии по адресу https://www.apache.org/licenses/LICENSE-2.0.
Если это не требуется действующим законодательством или не согласовано в письменной форме, программное обеспечение, распространяемое по Лицензии, распространяется на условиях «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ ИЛИ УСЛОВИЙ, явных или подразумеваемых. См. в Лицензии конкретный язык, регулирующий разрешения и ограничения в рамках Лицензии.