vue的html2canvas将dom转化为图片时,腾讯云图片地址显示空白.

应用场景:做个投票活动,将参赛者的信息转化成图片截图分享。用户上传图片上传到腾讯云cos桶中,html2canvas只能转换本地资源的图片,涉及跨域的图片无法转换、

解决方法:通过nginx代理转发,

假设你的网站是   http://www.helloworld.com

把 https://dingzi-1258648408.cos.ap-chengdu.myqcloud.com/upload/f49a6da3-73ea-422a-9b63-7a3e522130e2.png

换成 http://www.helloworld.com/cosImageUrl/upload/f49a6da3-73ea-422a-9b63-7a3e522130e2.png

这样访问http://www.helloworld.com/cosImageUrl就代理成https://dingzi-1258648408.cos.ap-chengdu.myqcloud.com/

  1. 配置nginx,在80端口下的localtion中添加一条配置

    location /cosImageUrl/ {
       proxy_http_version 1.1;
       proxy_pass https://dingzi-1258648408.cos.ap-chengdu.myqcloud.com/;
       add_header Access-Control-Allow-Origin *;
       add_header Access-Control-Allow-Methods "POST, GET, OPTIONS";
       add_header Access-Control-Allow-Headers "Origin, Authorization, Accept";
       add_header Access-Control-Allow-Credentials true;
      }
    

      

  2. 图片地址换成http://www.helloworld.com/cosImageUrl/upload/f49a6da3-73ea-422a-9b63-7a3e522130e2.png
  3. vue文件中

     <div ref="imageWrapper" v-if="firstFlag"></div>
    <div class="show_img">
              <img  :src="dataURL"  v-if="!firstFlag" style="width: 100%">
    </div>
    

      

    import html2canvas from "html2canvas"
    
    export default {
        name: "share",
        data() {
          return {
            firstFlag: true,
            dataURL: ‘‘,
          }
        },
        methods: {
            toImg() {
            html2canvas(this.$refs.imageWrapper,{useCORS: true}).then(canvas => {
              let imgUrl = canvas.toDataURL(‘image/png‘);
              this.dataURL = imgUrl;
              this.firstFlag = false;
            }).catch(error => {
            })
          },
        },
        mounted() {
          const that = this;
          that.$nextTick(function () {
            that.toImg();
          });
        },
    

      

原文地址:https://www.cnblogs.com/dinghaoran/p/12155827.html

时间: 2024-08-02 22:31:12

vue的html2canvas将dom转化为图片时,腾讯云图片地址显示空白.的相关文章

Vue使用html2canvas将页面转化为图片

需求是微信端将页面截屏之后保存到本地,使用了html2canvas插件 install npm install --save html2canvas 在所需页面引入 import html2canvas from "html2canvas" use <div ref="imageWrapper"> <div class="success"> <div class="img"> <img

modalDialog的使用,图片切换,点击图片时打开一个窗体,并显示信息

//主窗体 //与open的区别:1.参数二是传递的参数 2.属性设置格式:属性=属性值; 3.dialogHeight与dialogWidth没有单位,即需要自己加上px //window.showModalDialog //("modalDialog.html",window,"dialogHeight=300px;dialogWidth=300px;scroll=yes;status=yes;dialogTop=100;dialogLeft=100;resizable=

[JavaScript] 利用html2canvas实现dom元素转图片下载

安装html2canvas依赖 npm install --save html2canvas 导入 import html2canvas from 'html2canvas' 使用 let container = document.getElementById('views-container') html2canvas(container, { width: container.clientWidth, height: container.clientHeight, backgroundCol

html2canvas根据DOM元素样式实现网页截图

html2canvas根据DOM元素样式实现网页截图 html2canvas是一个相当不错的JavaScript类库,它使用了html5和css3的一些新功能特性,实现了在客户端对网页进行截图的功能.html2canvas通过获取页面的DOM和元素的样式信息,并将其渲染成canvas图片,从而实现给页面截图的功能. 它不需要来自服务器任何渲染,整张图片都是在客户端浏览器创建.当浏览器不支持Canvas时,将采用Flashcanvas或ExplorerCanvas技术代替实现.以下浏览器能够很好的

【PDF单页转化为图片输出 注意:英文或图片类的PDF可转化,中文抛异常】

1 public static void main(String[] args) throws IOException 2 { 3 /** 4 * PDF单页转化为图片输出 注意:英文或图片类的PDF可转化,中文抛异常 5 */ 6 PDDocument doc; 7 try 8 { 9 String inputFile = "F:\\java56班\\eclipse-SDK-4.2-win32\\iText入门基础教程[2].pdf"; 10 String imagepath = &

将布局转化为图片

需求:将某一部分布局转化为图片 其实很简单,就几行代码 view.setDrawingCacheEnabled(true); view.buildDrawingCache(); Bitmap bitmap = Bitmap.createBitmap(view.getDrawingCache());//创建一个DrawingCache的拷贝,因为DrawingCache得到的位图在禁用后会被回收 view.setDrawingCacheEnabled(false);//禁用DrawingCahce

Vue基础学习之DOM操作

demo说明: 1.{{message}}                          --声明式渲染 2.v-bind:属性名                        --绑定元素属性 3.v-if="change=='a'"              --判断change=='a',等于则显示该DOM节点 4.v-else-if="change=='b'"      --结合[v-if]使用,判断change=='b',等于则显示该DOM节点 5.v

iOS 文字转化成图片

//文字转化成图片 -(UIImage *)imageFromText:(NSArray*)arrContent withFont:(CGFloat)fontSize withTextColor:(UIColor *)textColor withBgImage:(UIImage *)bgImage withBgColor:(UIColor *)bgColor { // set the font type and size UIFont *font = [UIFont fontWithName:@

利用aspose-words直接将Word转化为图片

之前遇到一个需求,需要在word文档中加入一些文字,并转化为图片.之前也试过几种方案,但是发现效果还不是很理想,且中间需要经过一次转化为pdf的过程,最近找到了最理想的方式,即利用aspose-words作为转化工具,直接将word转化为图片,不管是速度还是质量都满足了我们的需求 具体实现 首先需要弄一个破解的license文件,以及jar包,那么这里提供下载地址 下面是读取license的工具类 import java.io.InputStream; import com.aspose.wor