Esta es mi función a través de la cual estoy agregando un logotipo al código qr.
const qrcode = require('qrcode'); const { createCanvas, loadImage } = require('canvas'); //Using canvas I am adding logo to center of image(center_image) and also passing width async function create(dataForQRcode, center_image, width, cwidth) { const canvas = createCanvas(width, width); qrcode.toCanvas(canvas, dataForQRcode, { errorCorrectionLevel: 'H', version: 5, margin: 1, color: { dark: '#000000', light: '#ffffff', }, }); const ctx = canvas.getContext('2d'); const img = await loadImage(center_image); const center = (width - cwidth) / 2; //and using drawImage I am adding logo to qr code ctx.drawImage(img, center, center, cwidth, cwidth); return canvas.toDataURL('image/jpeg', 1.0); }Aquí estoy llamando a la función y pasando todos los argumentos.
const QRcode = await create( "Hello guys", "https://images.pexels.com/photos/10013232/pexels-photo-10013232.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500", 140, 20 );Después de eso, obtengo el qrcode con el logotipo en el centro, pero la calidad del logotipo es muy mala. No sé cómo mejorar la calidad de la imagen.