0

Canvas drawImage add padding


exports.userQrcode = (request, callback) => {

    const {parameter} = request.body
    const FEIFENG_COM = "https://www.feifeng.com.cn/" + parameter
    const imageURL = "https://flywind-avatars.oss-cn-qingdao.aliyuncs.com/252399-16725842177460.jpg"

    const options = {
        type: 'image/jpeg',         // 类型
        quality: 1,                 // 质量 0~1
        errorCorrectionLevel: 'Q',  // 纠错级别
        margin: 4,
        scale: 16,
        color: {dark: "#37474f"},
        width: 1080
    }

    const canvas = createCanvas(1080, 1080)
    const context = canvas.getContext('2d')

    QRCode.toCanvas(canvas, FEIFENG_COM, options).then(url => {
        loadImage(imageURL).then((image) => {

            context.beginPath();
            context.arc(540, 540, 64, 0, Math.PI * 2, true);
            context.closePath();
            context.clip();

            context.drawImage(image, 476, 476, 128, 128)
            return callback({status: config.status, data: canvas.toDataURL()})
        })
    }).catch(error => {
        return callback(config.database_error)
    })
}


current style

enter image description here

desired style

enter image description here

gaohomway
  • 2,132
  • 1
  • 20
  • 37
  • Does this answer your question? [How to draw a rounded rectangle using HTML Canvas?](https://stackoverflow.com/questions/1255512/how-to-draw-a-rounded-rectangle-using-html-canvas) – Konrad May 04 '23 at 10:02

0 Answers0