zoukankan      html  css  js  c++  java
  • uni APP 通过画布生成二维码和背景图的海报形式代码

    二维码的生成可通过uni 的插件市场下载二维码生成插件。

    <template>
        <view class="content">
            <view class="accounthead">
                <view class="status_bar"></view>
                <view class="header_title">
                    <text class="iconfont icon-fanhui" @tap="back"></text>
                    <view class="title">分享</view>
                    <view class="btn_r" @tap="savePic">
                        <text>保存到相册</text>
                    </view>
                </view>
            </view>
            <view class="post">
                <tki-qrcode class="qrcode" cid="qrcode" ref="qrcode" :val="val" :size="size" :onval="onval" :loadMake="loadMake" :usingComponents="true" @result="qrR" :show="false" />
                 <view class="wrapper"><canvas style="height: 100%; 100%;backgroundColor: #FFFFFF" canvas-id="firstCanvas"></canvas></view>
            </view>
        </view>
    </template>
     
    <script>
        import qr from "../../static/js/wxqrcode.js"
        import tkiQrcode from '@/components/tki-qrcode/tki-qrcode.vue'
    export default {
      data() {
        return {
                canvasShow: false,
                picurl:'',
                val: '', // 要生成的二维码值
                size: 325, // 二维码大小
                unit: 'upx', // 单位
                background: '#b4e9e2', // 背景色
                foreground: '#309286', // 前景色
                pdground: '#32dbc6', // 角标色
                icon: '', // 二维码图标
                iconsize: 40, // 二维码图标大小
                lv: 3, // 二维码容错级别 , 一般不用设置,默认就行
                onval: false, // val值变化时自动重新生成二维码
                loadMake: true, // 组件加载完成后自动生成二维码
                src: '', // 二维码生成后的图片地址或base64
                cover:'static/share_bg.png'
        }
      },
      onLoad:function(option){
          var thas=this
          thas.val=option.devicenumber
      },
      methods: {
           qrR(path) {
              let that = this;
              this.qr_path = path;
              let system_info = uni.getSystemInfoSync();
              let ctx = uni.createCanvasContext('firstCanvas');
                  console.log(res.path);
              ctx.drawImage(res.path, 0, 0, uni.upx2px(750), uni.upx2px(1330));
              ctx.drawImage(path, uni.upx2px(184), uni.upx2px(630), uni.upx2px(375), uni.upx2px(400));
              ctx.draw(false, () => {
              uni.canvasToTempFilePath({
                        x: 0,
                        y: 0,
                               375,
                              height: uni.upx2px(1330),
                              destWidth: 375,
                              destHeight: uni.upx2px(1330),
                              canvasId: 'firstCanvas',
                              success: function(res) {
    uni.saveImageToPhotosAlbum({ filePath: res.tempFilePath, success:
    function() { that.picurl=res.tempFilePath } }); }, fail(e) { uni.showToast({ title: '生成海报失败', icon: 'none' }); } }); }); } }, //保存 savePic () { uni.showLoading({ title: '正在保存' }); uni.saveImageToPhotosAlbum({ filePath: this.picurl, success: function () { uni.showToast({ title: '图片保存成功~' }); }, fail: function (e) { }, complete: function (){ uni.hideLoading() } }); }, back(){ uni.navigateBack ({ delta:1 }) } }, components: { tkiQrcode }, } </script> <style lang="scss" scoped> .status_bar { height: var(--status-bar-height); 100%; background: #fff; } .accounthead{ background: #fff; 100%; } .header_title{ padding: 0 24upx; display: flex; justify-content: space-between; align-items: center; } .title{ font-size:36upx; font-family:Microsoft YaHei; font-weight:300; color:rgba(31,38,34,1); line-height:80upx; margin-left: 80upx; } .header_title text{ font-size: 36upx; } .btn_r text{ font-size:30upx; font-family:Microsoft YaHei; font-weight:300; color:rgba(31,38,34,1); line-height:80upx; } .post { height: 1320upx; position: fixed; top: 140upx; bottom: 0; left: 0; right: 0; .wrapper { height: 100%; display: flex; justify-content: center; align-items: center; } } </style>
  • 相关阅读:
    更改开机运行级别
    三个路由的路由表信息
    网络
    网卡配置文件与网络命令显示不一致
    使CentOS7恢复网卡传统命名
    删除CentOS7的虚拟网卡
    将克隆的eth3和eth4改为eth0和eth1
    单臂路由--1个物理网卡绑定多个IP地址
    洛谷P1098 字符串的展开
    洛谷P1086 花生采摘
  • 原文地址:https://www.cnblogs.com/jiawenzhen/p/11772910.html
Copyright © 2011-2022 走看看