我们要绘制一张图片,内容包括一张背景图和一个动态生成的二维码,前提是背景图是项目本身的静态资源,二维码是服务端动态生成的,二者不在同一域名下。
解决办法:把所有图片都重定向同一个域名下:
let count = 0; let bgImg = document.creatElement('img'); let qrImg = document.creatElement('img'); bgImg.src = redirectUrl('x.png'); qrImg.src = redirectUrl('y.png'); [bgImg, qrImg].forEach((e) => { e.onload = () => { count ++; if (count === 2) { drawerImg(bgImg, qrImg); } } }) function redirectUrl (url) { return 'https://xxx/view?fileUrl=' + encodeURIComponent(url); } function drawerImg (imgContent, qrContent, scaleBy = 2) { let {bgImgW, bgImgH} = {375, 800}; let {qrx, qry, qrw, qrh} = {20, 700, 50, 50}; let Canvas = document.createElement('canvas'); let ctx = Canvas.getContext("2d"); Canvas.width = bgImgW * scaleBy; Canvas.height= bgImgH * scaleBy; ctx.drawImage(imgContent, 0, 0, bgImgW * scaleBy, bgImgH * scaleBy); ctx.drawImage(qrContent, qrx * scaleBy, qry * scaleBy, qrw * scaleBy, qrh * scaleBy); let nodeI = document.createElement("img"); nodeI.src = Canvas.toDataURL(); document.body.appendChild(nodeI) }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
简介 处理大量并发是 Go 语言的一大优势。语言内置了方便的并发语法,可以非常方...
在CSS中,根据元素显示模式的不同元素标签被分为了两类:行内元素(inline-level...
本文是介绍 RecyclerView 入门基础 系列文章 的第四篇。如果您已经对创建 Recycl...
在HTML5中,我们可以使用drawImage方法在canvas上进行画图操作,其基本代码如下...
打开纯文本代码链接时,自动高亮代码,支持191种语言,97个主题 特性 支持191种...
为表达全国各族人民对抗击新冠肺炎疫情斗争牺牲烈士和逝世通报的深切哀悼,国务...
微信搜索【 脑子进煎鱼了 】关注这一只爆肝煎鱼。本文 GitHub github.com/eddycj...
前言 在制作顶部菜单的时候,都会要求制作弹出的二级菜单,早先的做法是用jQuery...
【内容】: 1.利用background-image 渐变样式 2.可以利用scale缩放 3.给伪元素设...
前言: 不知多久能学会 Elisp 上一章: 动态模块 从本章开始,进入这份 Elisp 教...