Me gustaría tomar una imagen y componerla encima de otra imagen.
Esto funciona bien para ese propósito:
overlayImg = await Sharp(sourceImage.Body) .composite([{ input: './lambdas/processNewImage/logos/white.png', gravity: 'southeast', }]) .toFormat('jpeg').toBuffer();También tengo una variable: 1-100 que se supone que es la opacidad de la marca de agua. A veces lo quiero completamente sólido Al 100% de opacidad, otras al 70% y otras al 30%...etc. Debido a que necesito que esto sea variable, no puedo simplemente cambiar la opacidad de la imagen de la marca de agua.
No sé cómo cambiar la opacidad de una imagen compuesta en Sharp.
¿Alguien puede dar un ejemplo rápido?
Encontré esto en otro hilo donde se superpone con un búfer de píxeles sin procesar que contiene un valor de píxeles semitransparente en mosaico. 128 significa 50% de opacidad donde los valores válidos son 0-255. https://github.com/lovell/sharp/issues/554
overlayImg = await Sharp(sourceImage.Body) .composite([ { input: './lambdas/processNewImage/logos/white.png', gravity: 'southeast', }, { input: Buffer.from([0,0,0,128]), raw: { width: 1, height: 1, channels: 4, }, tile: true, blend: 'dest-in', } ]) .toFormat('jpeg').toBuffer();