基于mpvue实现的1080*1900小程序海报
html
  <canvas class="canvas" :style="'width:'+windowWidth+'px;height:'+windowWidth/(1080/1900)+'px;'" canvas-id="firstCanvas"></canvas> 
 
js
 const windowWidth = this.windowWidth
const fit = 1080 / 1900 //dpr
const widFit = windowWidth / 1080 //宽比 (像素375所以除2,下同理)
const heiFit = windowWidth / fit // 750 / (1080 /1900)
const ctx = wx.createCanvasContext('firstCanvas')
ctx.save()
ctx.drawImage(this.backgroundUrl, 0, 0, windowWidth, windowWidth/fit) ctx.save()
ctx.beginPath()
ctx.arc(206*widFit, 713/1900*heiFit, 53*widFit, 0, 2 * Math.PI)
ctx.clip()
ctx.drawImage(this.face, 153*widFit, 660/1900*heiFit, 106*widFit, 106*widFit)
ctx.restore() ctx.save()
ctx.beginPath()
ctx.arc(540*widFit, 1602/1900*heiFit, 105*widFit, 0, 2 * Math.PI)
ctx.clip()
ctx.drawImage(this.qrcode, 435*widFit, 1497/1900*heiFit, 210*widFit, 210*widFit)
ctx.restore() ctx.draw(false,function(){
  wx.canvasToTempFilePath({
    destWidth: 1080,
    destHeight: 1900,
    canvasId: 'firstCanvas',
    quality: 1,
    success(res) {
      console.log(res)
    },
    complete(fin){
      console.log('finish',fin)
      if(fin.tempFilePath){
        wx.saveImageToPhotosAlbum({
          filePath: fin.tempFilePath,
          success: (result)=>{
            wx.showToast({
              title: '保存图片成功',
              icon: 'none'
            })
          }
        })
      }
    }
  })
})

 
核心主要是换算比例
 

canvas制作完美适配分享海报的更多相关文章

  1. H5上传图片并使用canvas制作海报

    马上就要"十一"国庆节了,又恰逢公司已经三周岁了,所以市场部和产品共同策划了一个"正青春,共成长"的主题代言活动,准备在国庆节以及中秋节期间让公司员工和用户为公 ...

  2. 使用Canvas绘制分享海报

    这几天接到一个需求,需要将一个邀请链接转换为一个带有二维码并且能够分享出去的海报图,网上找了很多的方法,也踩了不少的坑,希望大家遇到类似的需求能够少走弯路.. 具体效果图如下: 效果图 首先我采用了 ...

  3. 前端生成分享海报兼容H5和小程序

    ### 移动端分享海报生成 最近做项目需求是生成商品分享海报,并且保存到手机中要兼容H5和小程序<br> 与后端同学沟通后,海报在前端生成最省性能和有较好的交互体验,先看做好的效果

  4. 酷!使用 jQuery & Canvas 制作相机快门效果

    在今天的教程中,我们将使用 HTML5 的 Canvas 元素来创建一个简单的摄影作品集,它显示了一组精选照片与相机快门的效果.此功能会以一个简单的 jQuery 插件形式使用,你可以很容易地整合到任 ...

  5. 如何使用 HTML5 Canvas 制作水波纹效果

    今天,我们继续分享 JavaScript 实现的效果例子,这篇文章会介绍使用 JavaScript 实现水波纹效果.水波效果以图片为背景,点击图片任意位置都会触发.有时候,我们使用普通的 Javasc ...

  6. Canvas制作的下雨动画

    简介 在codepen上看到一个Canvas做的下雨效果动画,感觉蛮有意思的.就研究了下,这里来分享下,实现技巧.效果可以见下面的链接. 霓虹雨: http://codepen.io/natewile ...

  7. 小程序利用canvas 绘制图案 (生成海报, 生成有特色的头像)

    小程序利用canvas 绘制图案 (生成海报, 生成有特色的头像) 微信小程序生成特色头像,海报等是比较常见的.下面我来介绍下实现该类小程序的过程. 首先选择前端来通过 canvas 绘制.这样比较节 ...

  8. 用Canvas制作简单的画图工具

    今天用Canvas制作了一个画图工具,非常简单,功能也不是很多,主要有背景网格,画线,画圆,画矩形和画圆角矩形,也用到了canvas的一些基本知识,在这里一一列举. 1.线段的绘制: 如何绘制真正的1 ...

  9. 使用canvas制作在线画板

    canvas绘图的强大功能,让人前仆后继的去研究它.代码全部加起来不足百行.还用到了h5中的<input type="color"/>和<input type=& ...

随机推荐

  1. curl命令整理

    ##curl命令 curl命令是一个功能强大的网络工具,它能够通过http.ftp等方式下载文件,也能够上传文件. #####1. 下载单个文件,默认将输出打印到标准输出中(STDOUT)中``` c ...

  2. Linux CPU Hotplug CPU热插拔

    http://blog.chinaunix.net/uid-15007890-id-106930.html   CPU hotplug Support in Linux(tm) Kernel Linu ...

  3. SPRING 集成 KAFKA 发送消息

    准备工作 1.安装kafka+zookeeper环境 2.利用命令创建好topic,创建一个topic my-topic 集成步骤 1.配置生产者 <?xml version="1.0 ...

  4. springboot 碰到的问题

    1.在springboot 启动报错 ** WARNING ** : Your ApplicationContext is unlikely to start due to a @ComponentS ...

  5. Architecture

    SMART Crossbar The SMART crossbar is the primary building block in a SMART NoC that enables straight ...

  6. centos7 新增ip

    1.进入network-scripts目录:cd /etc/sysconfig/network-scripts/ 2.复制ifcfg-eth0: cp ifcfg-eth0 ifcfg-eth0:0 ...

  7. mysql order by 中文 排序

    mysql order by 中文 排序 1. 在MySQL中,我们经常会对一个字段进行排序查询,但进行中文排序和查找的时候,对汉字的排序和查找结果往往都是错误的. 这种情况在MySQL的很多版本中都 ...

  8. Manacher算法,最长回文串

    给你10000长度字符串,然你求最长回文字串,输出长度,暴力算法肯定超时 #include <iostream> #include <string> #include < ...

  9. ubuntu设置IP地址、网关的方法

    打开terminal(用Ctrl+Alt+T打开) 1. 输入ifconfig  打印如下: enp1s0    Link encap:Ethernet  HWaddr 6c:4b:90:0b:53: ...

  10. 2.2.5synchronized代码间的同步性

    package com.cky.bean; /** * Created by chenkaiyang on 2017/12/6. */ public class ObjectService { pub ...