前端生成图片方案
一、canvas画图api
ctx.drawImage ctx.fillText ctx.toDataURL
二、html+css构建的页面,用html2canvas导出
/*图片跨域及截图模糊处理*/ let shareContent = domObj,//需要截图的包裹的(原生的)DOM 对象 width = shareContent.clientWidth,//shareContent.offsetWidth; //获取dom 宽度 height = shareContent.clientHeight,//shareContent.offsetHeight; //获取dom 高度 canvas = document.createElement("canvas"), //创建一个canvas节点 scale = 2; //定义任意放大倍数 支持小数 canvas.width = width * scale; //定义canvas 宽度 * 缩放 canvas.height = height * scale; //定义canvas高度 *缩放 canvas.style.width = shareContent.clientWidth * scale + "px"; canvas.style.height = shareContent.clientHeight * scale + "px"; canvas.getContext("2d").scale(scale, scale); //获取context,设置scale let opts = { scale: scale, // 添加的scale 参数 canvas: canvas, //自定义 canvas logging: false, //日志开关,便于查看html2canvas的内部执行流程 width: width, //dom 原始宽度 height: height, useCORS: true // 【重要】开启跨域配置 }; html2canvas(shareContent,opts).then()
三、puppeteer展示,并截图后返回