vue中使用html2canvas生成图片

1、安装插件
cnpm install html2canvas
2、在页面内引用插件
import html2canvas from “html2canvas”
3、使用插件

 toImage(){
        this.$Loading.start();
        var scrollHeight = $('#glcontent').prop("scrollHeight");
        var height = $('#glcontent').height();
        var width = $('#glcontent').width();
        html2canvas(this.$refs.imageWrapper,
          { type: 'view',
            height: scrollHeight + 50,
            width: width,
            windowHeight: scrollHeight + height + 50,
           }).then(canvas => {
              let dataURL = canvas.toDataURL("image/png");
              this.imgUrl = dataURL;
              let url = dataURL.split(",")[1];
              if(url != ''){
                this.$Loading.finish();
                let gwq = GWQUtil.getObject();
                GWQUtil.createQrCode(gwq, url, '一体机');
              }
        }).catch(error=>{
          this.$Loading.error();
          alert(error)
        });
      },

4、遇到的问题
如果页面有滚动条,滚动条部分里的内容解不出来,需要加windowHeight

好的,针对你的问题,我可以给你提供一些思路和参考方法: 1. 在 Vue 页面引入 html2canvas 库,并使用的 toDataURL 方法将页面截图生成 Base64 图片数据。 2. 使用 Canvas 在图片上添加水印。 3. 可以添加多个水印,需要调整水印的位置和大小。 4. 最后将添加水印后的图片保存或上传到服务器。 下面是一个简单的示例代码,仅供参考: ``` <template> <div> <button @click="generateImage">生成图片</button> </div> </template> <script> import html2canvas from 'html2canvas'; export default { methods: { async generateImage() { const canvas = await html2canvas(document.querySelector('#target'), { useCORS: true, }); const ctx = canvas.getContext('2d'); const img = new Image(); img.src = canvas.toDataURL(); // 添加水印 img.onload = () => { // 添加第一个水印 ctx.font = 'bold 20px Arial'; ctx.fillStyle = 'rgba(255, 255, 255, 0.6)'; ctx.fillText('watermark1', 50, 50); // 添加第二个水印 ctx.font = 'bold 30px Arial'; ctx.fillStyle = 'rgba(255, 255, 255, 0.6)'; ctx.fillText('watermark2', 200, 200); // 将添加水印后的图片保存到本地 const link = document.createElement('a'); link.download = 'image.png'; link.href = canvas.toDataURL(); link.click(); }; }, }, }; </script> ``` 这里添加的两个水印只是示例,你可以根据需要添加更多的水印,并调整水印的位置和大小。同时,你需要注意浏览器的跨域问题,如果出现跨域问题,可以使用 `useCORS` 参数解决。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值