上代码

wxml

<canvas canvas-id="myCanvas" style="width:400px;height:400px;"></canvas>

js

const ctx = wx.createCanvasContext('myCanvas'), //canvas
fsm = wx.getFileSystemManager(), //文件管理器
FILE_BASE_NAME = 'tmp_base64src', //文件名
format = 'png', //文件后缀
base64Str = ('iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDY3IDc5LjE1Nzc0NywgMjAxNS8wMy8zMC0yMzo0MDo0MiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpiZDM3ZmYwZi0wZDgxLWRkNDMtYTBjOC05YzU1OWVmMmUyNmYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QjJGNUNCMDIwMjc2MTFFOUIxNDFENzI5QTVGOTQ3NTAiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QjJGNUNCMDEwMjc2MTFFOUIxNDFENzI5QTVGOTQ3NTAiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MWJhYjRjZjYtNGZiZC05OTRhLWEwZDgtNDYzYjFlMjE4ZjFiIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOmJkMzdmZjBmLTBkODEtZGQ0My1hMGM4LTljNTU5ZWYyZTI2ZiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PosmEdAAAANoSURBVHja7Fg9aBRBFH7vTlEhUTSNiY2SQhRTGRIjKsnhD5qkFbSxsAnYiEUghaRQU5g0FiIWiqIgSWWTEMT4F7UQJGptLTYWwYBCbnb8dnfmbnZ2Ntm73cQUtzD53szevvfd99682QtLKWkjXwXa4FeDYIPg/7425elsros6ikTFgqQv/jcHBgpom1d49vDnNVRw+gjxbDeNeUzfBNECcMwDHyD5Tcwf2l53BZ/3UKHIdBfxhwIGMFjSCHAn8AqIeaSUlByy5fUiOHWUNoPcIwS9GCyE5IhDIkPAHcBLWF/W8umU8VoTfHqMtoHcJAIPBsQoJEdKJYUXgM3A88A/er1Qg4p11eDD49SMWpsRTIN+baHeCHYwPFVvBg5gzIDTdqlrUt1fE4L3TlALiLzC6BU+MU3OtjXJkGgvcA6jRa+lJVkTwTu91IbA70CgUyiFIoRsBSmiaidwHthmkpR5EbzdR+0g8h4BDwqLmLDSLBwpV1/oAOYfgO1p208qgjdKdAjB5jH2RVLJDtuuQY6t7ZWhkh0eVWuyboLXT1IXgr9FkNYyJ6tkptmuSy++eVqBb4DdOt11ERw+RSUEmEOwXTG1VptbdSkMJRXuwvpLYKkuglfPUD+cTmM0udLomntJxNztxx9N0m9BTP01N2oEegw/W4WqD92EK+WiTwx9KhjzynGmmzbFGnjlPvxugfUAY3dNCoLYTyNV46upZ9dcivYzbqz9qjnFeMhP8SjGwMQLGnbVWjlFLa7QfoZBbgBro8BzSTw47a+6a6dJFmVYEwFKhWTYPhrziG08WwyRC1WbSp8yviwk1aKa/8Dfj0HPDWvRv92De3sEVT8vZLwu2azdTAQpdCSsTaA2yOWR1zQ70RchfRb3ZsixgZxvP5SDghWH8Z27pL+EQfo3O9TTxATHu0Emgp6lnp1y/ypzhvaTR4opqlDU1ipr0mQQNebCkeZ8atAIlpQeQdF5woZy+sme4gQFhHTUqfosuzdUTPm8FBRwWDTrhq1fPyJJLftolCRi7ScHBb/D234y6kZYgQXF1WIHafZ9pdjBNb1RQ51Jz3HOKvsvxY+0pRXO6yn77SczQZC7BYf34XDReCEtY+0Z7AWi2Ln7FfgEY7lcJbIofB9MN23Smc/ixn+3GgQbBDfo9U+AAQAR3QEE8abLPQAAAABJRU5ErkJggg==') //base64字符串
buffer = wx.base64ToArrayBuffer(base64Str), //base 转二进制
filePath = `${wx.env.USER_DATA_PATH}/www.${format}`; //文件名 fsm.writeFile({ //写文件
filePath,
data: buffer,
encoding: 'binary',
success(res) {
wx.getImageInfo({ //读取图片
src: filePath,
success: function(res) {
console.log({
res
}) ctx.drawImage(res.path, 0, 0, 150, 100) //画图
ctx.draw()
},
error(res) {
console.log({
res
})
}
})
}
})

注意:base字符串没有头信息

微信小程序 base64图片在canvas上画图的更多相关文章

  1. 微信小程序 base64 图片 canvas 画布 drawImage 实现

    在微信小程序中 canvas drawImage API 传入的第一个参数是 imageResource 图片资源路径,这个参数通常由从相册选择图片 wx.chooseImage 或 wx.getIm ...

  2. 微信小程序base64图片保存到手机相册

    问题:base64图片不能直接用wx.saveImageToPhotosAlbum保存到手机相册 解决: 先用fs.writeFile写入本地文件,再wx.saveImageToPhotosAlbum ...

  3. 微信小程序实现图片是上传、预览功能

    本文实例讲述了微信小程序实现图片上传.删除和预览功能的方法,分享给大家供大家参考,具体如下: 这里主要介绍一下微信小程序的图片上传图片删除和图片预览 1.可以调用相机也可以从本地相册选择 2.本地实现 ...

  4. 微信小程序裁剪图片成圆形

    代码地址如下:http://www.demodashi.com/demo/14453.html 前言 最近在开发小程序,产品经理提了一个需求,要求微信小程序换头像,用户剪裁图片必须是圆形,也在gith ...

  5. 微信小程序之下拉刷新,上拉更多列表实现

    代码地址如下:http://www.demodashi.com/demo/11110.html 一.准备工作 首先需要下载小程序开发工具 官方下载地址: https://mp.weixin.qq.co ...

  6. 微信小程序中图片上传阿里云Oss

    本人今年6月份毕业,最近刚在上海一家小公司实习,做微信小程序开发.最近工作遇到一个小问题. 微信小程序图片上传阿里云服务器Oss也折腾了蛮久才解决的,所以特意去记录一下. 第一步:配置阿里云地址: 我 ...

  7. [转]微信小程序实现图片上传功能

    本文转自:http://blog.csdn.net/feter1992/article/details/77877659 前端: 微信开发者工具 后端:.Net 服务器:阿里云 这里介绍微信小程序如何 ...

  8. 微信小程序之图片base64解码

    不知道大家在做微信小程序的时候遇到base64解码的问题,我之前在做微信小程序的时候遇到base64解析图片一直有问题,所以在这里把遇到的问题和解决方案在这里记录一下: 在平时的项目中我们是直接用ba ...

  9. nodeJs实现微信小程序的图片上传

    今天我来介绍一下nodejs如何实现保存微信小程序传过来的图片及其返回 首先wx.uploadFile绝大部分时候是配合wx.chooseImage一起出现的,毕竟选择好了图片,再统一上传是实现用户图 ...

随机推荐

  1. kubernetes pod、service文件yaml模版格式

    apiVersion: v1 #必选,版本号,例如v1,版本号必须可以用 kubectl api-versions 查询到 . kind: Pod #必选,Pod metadata: #必选,元数据 ...

  2. python 取整itertools

    #coding:utf-8 import sys import itertools def MaxString(n,nums): list1 = nums list2 = [] for i in ra ...

  3. day15(mysql 的多表查询,事务)

    mysql之多表查询 1.合并结果集 作用:合并结果集就是把两个select语句查询的结果连接到一起! /*创建表t1*/ CREATE TABLE t1( a INT PRIMARY KEY , b ...

  4. (最短路 spfa)Wormholes -- poj -- 3259

    http://poj.org/problem?id=3259 Wormholes Time Limit: 2000MS   Memory Limit: 65536K Total Submissions ...

  5. EntityFramework 基本模式和Code-First的简单使用

    1.Database-First  Database First就是首先建立好数据库,或者存在现成的数据库也可以.然后在vs中添加ADO.Net实体数据模型,找到需要的数据库和表.它是以数据库设计为基 ...

  6. Should Assertion Library

    Should Assertion Library,通常在测试时用到,可以与nunit 结合使用. 已经从codeplex 迁移到 github.网址如下 https://github.com/eric ...

  7. iOS 5 故事板进阶(2)

    让我们回到游戏排行窗口Ranking.创建一个 UITableViewController子类,命名为 RankingViewController. 编辑 RankingViewController. ...

  8. [IOS] 详解图片局部拉伸 + 实现图片局部收缩

    (图为微信首页右上角『+』效果) 当初还在开发WP7的时候,从IOS同事那边了解到类似微信以上功能的实现. Item条数不同,总高度也不同,这就需要将背景图片进行局部拉伸到响应的高度,并且保持上方的三 ...

  9. Android-天气预报Demo-JSON数据解析

    在上两篇博客,Android-解析JSON数据(JSON对象/JSON数组),Android-Gson解析JSON数据(JSON对象/JSON数组),是介绍了解析本地文件里面的JSON数据: Andr ...

  10. SQL Server Extended Events 进阶 1:从SQL Trace 到Extended Events

    http://www.sqlservercentral.com/articles/Stairway+Series/134869/ SQL server 2008 中引入了Extended Events ...