微信小程序canvas画布绘制;canvas画布图片保存

2023-11-18

微信小程序canvas画布绘制

wx.createSelectorQuery()

.select('#canvas')

.fields({ node:  true, size:  true  })

.exec(res  =>  {

let  ctx  =  res[0].node.getContext('2d');//getContext返回Canvas 的绘图上下文

let  canvas  =  res[0].node;

img=canvas;

console.log(img);

// 通过设备的像素比等重新绘制宽高

const  dpr  =  wx.getSystemInfoSync().pixelRatio

canvas.width  =  500  *  dpr

canvas.height  =  900  *  dpr

ctx.scale(dpr,  dpr)

console.log(res[0].width  *  dpr);

console.log(res[0].height  *  dpr);


let  image  =  canvas.createImage();//创建iamge实例

image.src  =  'https://xxxxxxxxx';

image.onload  =  function  (rrr)  {

ctx.drawImage(image,  0,  40,  500,  820);
}
let  image1  =  canvas.createImage();//创建iamge实例

image1.src  =  'https://xxxxxxxx';

image1.onload  =  function  (rrr)  {

ctx.drawImage(image1,  110,  435,  290,  290);

}

})

wx.createSelectorQuery().select('#canvas').boundingClientRect(function(res)  {

console.log(res);

}).exec();

微信小程序 canvas画布图片保存

wx.canvasToTempFilePath({

// 把画布转化成临时文件

x:  0,

y:  0,

width:  500,  // 截取的画布的宽

height:  900,  // 截取的画布的高

destWidth:  500,  // 保存成的画布宽度

destHeight:  900,  // 保存成的画布高度

fileType:  'jpg',  // 保存成的文件类型

quality:  1,  // 图片质量

canvas:img,  // 画布ID

success(res)  {

console.log(res.tempFilePath)

// 2-保存图片至相册

wx.saveImageToPhotosAlbum({

// 存成图片至手机

filePath:  res.tempFilePath,

success(res2)  {

wx.showToast({

title:  '保存成功',

duration:  2000

});

},

fail(res3)  {

if (res3.errMsg  ===  'saveImageToPhotosAlbum:fail auth deny') {

wx.showToast({

title:  '保存失败,稍后再试',

duration:  2000,

icon:  'none'

});

}  else  {

wx.showToast({

title:  '保存失败,稍后再试',

duration:  2000,

icon:  'none'

});

}

}

});

},

fail(error)  {

console.log(error);

wx.showToast({

title:  '保存失败,稍后再试',

duration:  2000,

icon:  'none'

});

}

});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

微信小程序canvas画布绘制;canvas画布图片保存 的相关文章

  • 常见锁相关

    Linux 锁 futex 所有的futex同步操作都应该从用户空间开始 首先创建一个futex同步变量 也就是位于共享内存的一个整型计数器 当进程尝试持有锁或者要进入互斥区的时候 对futex执行 down 操作 即原子性的给futex同
  • 2023Android大厂面试题详解之内存优化,内存抖动和内存泄漏。(附面试题汇总)

    内存优化 内存抖动和内存泄漏 东方头条 详细讲解 性能优化 内存泄漏与内存抖动优化实战 详细讲解 享学课堂移动互联网系统课程 性能优化 内存泄漏与内存抖动优化实战 这道题想考察什么 内存抖动与内存泄漏是什么 会对程序造成什么影响 为什么会产
  • webpack 插件之Html-Webpack-Plugin

    webpack 插件之Html Webpack Plugin 1 为什么我们需要这个插件 先来看一个应用场景 我们自己打算搭建一个网站 这个网站有很多个页面 我们为每个页面创建一大堆的css样式 js脚本 然后尝试用webpack进行打包
  • 【微信小程序】小程序获取元素的宽度高度

    微信小程序不能进行DOM操作 所以获取元素的信息就不能按照常规手法来做了 首先需要借助微信给我们开发者提供的一个API来实现返回一个SelectorQuery 对象实例 接下来就好办多了 话不多说 上代码 API wx createSele
  • 关于@RabbitListener注解自动ack的一些猜测

    一 起因 从网上获取到的信息 RabbitListener采用的是自动ack 二 实际现象 然而实际测试中发现 在消费者接受到消息后 消息并有立即从队列中移除 而是会在任务执行完成后才会从队列中移除 三 疑问 按照官方解释 消费者一旦设置了
  • 【Effective C++详细总结】第四章 设计与声明

    个人博客 https blog csdn net Newin2020 spm 1011 2415 3001 5343 专栏地址 C C 知识点 专栏定位 整理一下 C 相关的知识点 供大家学习参考 如果有收获的话 欢迎点赞 收藏 您的支持就

随机推荐

  • 部署Redis服务

    Redis介绍 Remote Dictionary Server 远程字典服务器 是一款高性能的 Key Values 分布式内存数据库 支持数据持久化 定期把内存里数据存储到硬盘 支持多种数据类型 支持master slave模式数据备份
  • 神经机器翻译(seq2seq RNN)实现详解

    http c biancheng net view 1947 html seq2seq 是一类特殊的 RNN 在机器翻译 文本自动摘要和语音识别中有着成功的应用 本节中 我们将讨论如何实现神经机器翻译 得到类似于谷歌神经机器翻译系统得到的结
  • yarn install时报错 error An unexpected error occurred: “https://registry.yarnpkg.com/... ETIMEDOUT“.

    当yarn install时出现error An unexpected error occurred https registry yarnpkg com caniuse lite caniuse lite 1 0 30001427 tgz
  • 递归与分治

    递归的定义 程序调用自身的编程技巧称为递归 递归做为一种算法在程序设计语言中广泛应用 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法 它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解 递归策略只需少量
  • chatgpt赋能python:Python除零错误:原因,解决办法和实践建议

    Python 除零错误 原因 解决办法和实践建议 介绍 Python 作为一门广泛使用的高级编程语言 它的强大之处就体现在它的简洁性 可读性和易用性上 但是在实践中 有时候我们会遇到一些让我们不得不头痛的问题 其中之一就是 Python 除
  • Eclipse如何设置快捷键

    在eclopse设置注释行和取消注释行 打开eclipse 依次打开 Window gt Preferences gt General gt Key
  • Vue<router-view></router-view>学习心得

    今天看到个Vue项目结构中使用到了
  • C#基础教程(十四) String、StringBuilder、”==,equal,ReferenceEquals“

    1 内存分区 1 栈区 由编译器自动分配释放 存放值类型的对象本身 引用类型的引用地址 指针 静态区对象的引用地址 指针 代码中必须就栈的大小有明确的定义 栈区内存无需我们管理 也不受GC管理 栈顶元素使用完毕弹出就会立即释放 由操作系统管
  • 【0基础】学习solidity开发智能合约-初识solidity

    本篇课程开始 我们来学习一下如何使用solidity开发智能合约 由于博主对于solidity的学习 也是自学的 所以一些不足或有纰漏之处还望指出 大家共同进步 本系列课程会分很多节课讲述 从入门到进阶 实战 在课程最后 我们会通过所学知识
  • 【Py】给已存在的Excel添加sheet

    使用pandas import pandas as pd from openpyxl import load workbook df pd DataFrame a 1 book load workbook test xlsx with pd
  • GPT专业应用:生成会议通知

    正文共 917 字 阅读大约需要 3 分钟 公务员 文秘必备技巧 您将在3分钟后获得以下超能力 快速生成会议通知 Beezy评级 B级 经过简单的寻找 大部分人能立刻掌握 主要节省时间 推荐人 Kim 编辑者 Linda 图片由Lexica
  • vue、nuxt的mavon-editor富文本的使用及添加代码块高亮样式、代码块行数、一键复制代码功能

    为啥断更了这么久 就是因为mavon editor富文本框的样式 nuxt项目的seo nuxt项目的优化 nuxt首屏渲染等等等的问题导致这么久没有发文章了 这篇文章先讲vue项目及nuxt项目中使用mavon editor并改变代码块的
  • HTTPS 的加密流程

    目录 一 HTTPS是什么 二 为什么要加密 三 加密 是什么 四 HTTPS 的工作过程 1 对称加密 2 非对称加密 3 中间人攻击 4 证书 总结 一 HTTPS是什么 HTTPS Hyper Text Transfer Protoc
  • BUUCTF-PWN-Writeup-1-5

    前言 开始刷一刷Buuctf的PWN题 一边学一边刷题了 其实主要是堆学的顶不住了 一个下午才搞懂一个知识点 太tm的难了 test your nc from pwn import from LibcSearcher import cont
  • 各大操作系统命令行清屏快捷键

    mac os x terminal清屏快捷键 cammand k linux系统清屏快捷键 ctrl l windows 命令行清屏命令 cls
  • 背景图片的定位问题详解

    我们在研究其他的网站的样式的时候经常会发现一种情况 就是在很多background属性里都调用同一张图片 来满足网页各个部分的使用 打开这种图片看一下 会发现这张图片上包含了很多小图片 比如 又如 这些小图片就是整图分割后的各个部分 把各个
  • Ubuntu16.04 获取Root 权限

    如果是第一次获得Root权限那么首先要设置root密码 sudo passwd root 获取root权限 su root 输入之前你设置的密码 退出root exit
  • Quartz教程--快速入门

    欢迎来到quartz快速入门教程 阅读本教程 你将会了解 quartz下载 quartz安装 根据你的需要 配置Quartz 开始一个示例应用 当熟悉了quratz调度的基本功能后 可以尝试一些更高级的特性 比如Where 这个一个企业级功
  • 深聊测试开发之:从订单支付流程来聊一聊,如何预防重复支付,建议收藏。

    如何预防订单重复支付 1 引言 2 订单支付流程 2 1 支付流程 2 2 订单状态 3 订单重复支付原因 3 1 掉单 3 2 未防重 3 3 多渠道 4 防止重复支付 4 1 加锁 4 2 缓存结果 4 3 支付中取消流水 4 4 已支
  • 微信小程序canvas画布绘制;canvas画布图片保存

    微信小程序canvas画布绘制 wx createSelectorQuery select canvas fields node true size true exec res gt let ctx res 0 node getContex