Водяной знак с резкостью

У меня есть изображение, и я помещаю туда водяной знак, но я хочу, чтобы этот водяной знак имел непрозрачность около 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%?

🤔 А знаете ли вы, что...
Node.js предоставляет возможность создания собственных модулей для переиспользования кода.


5
3 755
2

Ответы:

Решено

Шарп пока не умеет.

Альтернативный метод — использовать холст для изменения непрозрачности изображения перед композицией. https://github.com/Automattic/node-canvas/blob/master/examples/globalAlpha.js


Вам нужно изменить непрозрачность «logo.png», используя blur, а затем скомпоновать его, как фрагмент кода выше.