锐利的水印

Watermark with sharp

我有一张图片并在其中添加了水印,但我希望该水印的不透明度为 30%。

我的代码:

    let sharp = require('sharp');
    let buffer = null;

    await sharp(image)
        .composite([{ input: './logo.png', gravity: 'center' }])
        .sharpen()
        .withMetadata()
        .toBuffer()
        .then(function(outputBuffer) {
            buffer = outputBuffer;
        });
    return buffer;

我怎么能说徽标的不透明度为 30%?

Sharp 还不能做到这一点。

替代方法是使用 canvas 在合成前更改图像不透明度。 https://github.com/Automattic/node-canvas/blob/master/examples/globalAlpha.js

您需要使用 blur 更改“logo.png”的不透明度,然后像上面的代码片段一样组合它。