首页 > 其他分享 >uniapp将图片base64绘制到画布中

uniapp将图片base64绘制到画布中

时间:2024-04-30 11:12:11浏览次数:17  
标签:uniapp filePath base64 画布 uni 绘制 图片

 html

 <view class="content">
        <canvas canvas-id="myCanvas" style="width: 300px; height: 300px;"></canvas>
    </view>

 

js

// 获取图片的完整base64
                this.qrurl = res.data

                // 去掉图片的前缀信息,仅保留base64
                const base64Data = this.qrurl.replace(/^data:image\/\w+;base64,/, '');

                // 创建文件管理对象,用来提供保存一个临时的文件地址
                const fs = uni.getFileSystemManager();

                // 临时文件地址名
                const filePath = `${wx.env.USER_DATA_PATH}/shareQrcode.jpg`

                // 写入临时文件,文件地址filePath,图片信息base64Data
                fs.writeFile({
                filePath,
                data: base64Data,
                encoding: "base64",
                success(res) {
                  // 开始绘制到base64到画布中,把文件地址放进去即可
                  let context = uni.createCanvasContext('myCanvas', this);
                  context.drawImage(filePath, 0, 0, 300, 300);
                  context.draw();
                }
            })

 

 

 

uniapp的uni.getImageInfo 只能获取网络图片地址的图片信息,如果是将base64上传到网络然后再绘制又会浪费存储空间,时间,带宽等。所以不能用这个方法配合uni.createCanvasContext绘制图片到画布。

 

如果只有base64数据的话可以直接用uni.getFileSystemManager() 获取一个临时的文件地址,然后配合绘制到画布,直接前端本地就能完成。

标签:uniapp,filePath,base64,画布,uni,绘制,图片
From: https://www.cnblogs.com/Hello233/p/18167644

相关文章

  • vue3 把quill的base64变成图片地址
      你可以看看https://www.kancloud.cn/liuwave/quill/1434141或者看看别人的文章我的项目是vu3的 template的是这样的<el-form-itemlabel="中文详情"prop="content"><div><quill-editorref="QuillEditor"v-model:content="form.......
  • uniapp中导航栏的返回按钮使用 autoBackButton:false不生效
    uni-appH5端修改pages.json"autoBackButton":false不生效pages.json中配置autoBackButton是不生效的,因为这个属性只支持程序方面,H5不支持这个属性的设置 解决方法:在 mounted 这添加如下一句就好了,意思是在页面渲染完成后,找到返回按钮,把它隐藏 ......
  • uniapp+vue3聊天室|uni-app+vite4+uv-ui跨端仿微信app聊天语音/朋友圈
    原创研发uniapp+vue3+pinia2跨三端仿微信app聊天模板Uniapp-Wechat。uni-vue3-wchat基于uni-app+vue3+pinia2+uni-ui+uv-ui等技术跨端仿制微信App界面聊天项目,支持编译到H5+小程序端+App端。实现编辑框多行消息/emoj混合、长按触摸式仿微信语音面板、图片/视频预览、红包/朋友圈......
  • uniapp 实现复选下拉框
    预览图相关代码<template> <viewclass="uni-stat__select"> <spanv-if="label"class="uni-label-text">{{label+':'}}</span> <viewclass="uni-stat-box":class="{'uni-stat......
  • uniapp-H5页面刷新后返回失效,页面栈清空导致navigateBack失效问题
    问题描述:当用户刷新当前页面后,navigateBack就行失效原因分析:由于页面回调后导致当前页面刷新,使用getCurrentPages()方法获取页面栈只有当前页面页面无法返回,一直在当前页面刷新闪烁。问题解决constnavigateBack=(params)=>{ constpages=getCurrentPages() if(pag......
  • uniapp-common.css
    /*by:https://www.cnblogs.com/zzz7/p/15593167.html*/page{height:100%;width:190%;background-color:#F8F8F8;}.container{height:100%;width:100%;}/*主题色*/.main-color{color:#1bbf80;}.white-color{color:#ffffff;......
  • 名表维修保养:uniapp 微信小程序自定义导航栏 详细步骤
    组件使用:  <navbarclass="header":background="backgroundColor"backtitle="标题"@onBack="goBack"></navbar>组件引用:  importnavbarfrom'@/components/NavBer.vue';组件注册:  components:{navbar......
  • 什么是uniapp----分包
    前言还是同样的需求(uniapp的主包要求大小不得大于2MB),但是就算将能封装的都封装了还是会超过2MB,本文将介绍第二个优化点:分包开发一、什么是分包开发?有很多小伙伴一听分包开发认为就是多建几个文件夹,到时候引用就行了,说对对,但也不对,慢慢看下去就知道原因了:首先是官网的介绍:可......
  • uniapp u-picker操作
    <textclass="font-28font-bold"><u-pickerv-model="date_show"mode="time":default-time='date_value':params="date_params"@confirm="date_confirm"></u-picker><......
  • uniapp 配置h5测试的代理
    配置这个的时候网上找了很多比如说在manifest.json中修改h5配置的,我添加上不生效,这个方法对我来说才生效。新建vue.config.jsmodule.exports={publicPath:'./',devServer:{proxy:{'/api':{target:'你的接口地址',ws:true,......