# sharp图片转化
sharp 可以方便地实现常见的图片编辑操作,如裁剪、格式转换、旋转变换、滤镜添加等
实际业务中,可用于图片压缩,格式转化,添加logo等
# 基础
const sharp = require('sharp')
sharp('test.png')
.rotate()
.resize(200)
.toBuffer()
.then( data => ... )
.catch( err => ... )
sharp('test.png')
.jpeg({
quality: 100,
chromaSubsampling: '4:4:4'
})
.rotate()
.resize(200)
.toFile('test.jpg')
.then( data => ... )
.catch( err => ... )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 添加水印
要合成的图像必须要比处理后的图像相同或更小。composite
图片优先在底部显示,提供了top
和left
选项则根据参数显示。
// composite img
const imgBuffer = await sharp('./test.png').resize(500, 700).toBuffer()
// logo img => 处理后的图片
sharp('./logo.png')
.resize(500, 700)
.flatten( { background: '#ffffff' } )
.composite([{ input: imgBuffer, gravity: 'southeast', top: 0, left: 0 }])
.sharpen()
.withMetadata()
.png( { quality: 90 } )
.toFile('./test-logo.png')
.then( data => ... )
.catch( err => ... )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14