zoukankan      html  css  js  c++  java
  • canvas图片合成

    1、需要给产品左右一个分享的功能,需要把经纪人的信息和二维码和产品海报放在一起,写一个简单的demo,废话不多说直接上代码

     drawImage(){
          let _this = this;
          let canvas = document.createElement('canvas');
          let ctx = canvas.getContext('2d');
          canvas.width = 750;
          canvas.height = canvas.width*750/375;
          let img1 = new Image(), img2 = new Image();
          img1.src = '../../static/img/recruitment.png';
          img2.src = '../../static/img/xinyidaiercode.png'
          // 加载img
          let pm1 = new Promise((res, reject)=>{
            img1.onload = ()=>{
              res();
            }
          })
          let pm2 = new Promise((res, reject)=>{
            img2.onload = ()=>{
              res();
            }
          })
          // 两张图片加载完之后绘制于canvas中
          // 绘制图片的时候需要从本地加载完之后才能进行绘制,需要使用onload和promise对象,all方法为了等两张图片全都加载完之后再执行
    
          let drawALLImg = Promise.all([pm1, pm2]).then((res)=>{
            ctx.drawImage(img1, 0,0,canvas.width, canvas.height)
            ctx.drawImage(img2, canvas.width/3, 500,200, 200)
          })
    
          drawALLImg.then(()=>{
            ctx.font = 'bolder 36px Microsoft YaHei';
            let left = canvas.width*0;
            let top = canvas.height*0.02;
            ctx.fillText('xxxx', left, top);
            _this.imgUrl = canvas.toDataURL("image/png");
          })
        },
    

     遇到的一点小坑就是,合成图片的时候加上文字发现文字没有了,后面发现是被覆盖了,文字需要需要再图片之后加载;

  • 相关阅读:
    hive中named_struct构造和使用
    hive非分区表导入csv数据
    hive常用的日期函数
    hive mapreduce reducer 调优
    Hive Analytics Functions row_number rank over partition by
    skip-grant-tables
    VC中的字符串转换宏
    CMAKE的使用
    VSCODE C/C++配置
    libcurl,多线程,gzip,共享DNS
  • 原文地址:https://www.cnblogs.com/patriot/p/13726356.html
Copyright © 2011-2022 走看看