canvas 调用本地图片并输出图

<!--pages/demo/demo.wxml-->
<canvas canvas-id="myCanvas" style="width:700px;height:750px"/>
// pages/demo/demo.js

Page({

/**
* 页面的初始数据
*/
data: {
},

/**
* 生命周期函数--监听页面加载
*/
onLoad: function(options) {
 
},

/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function() {
const ctx = wx.createCanvasContext('myCanvas')
ctx.drawImage('../../image/jc_0.png', -58, -220, 750 / 1.5, 1122)
ctx.drawImage('../../image/jc_1.png', 45 / 2, 54 / 2, 66 / 2, 66 / 2)
ctx.drawImage('../../image/jc_2.png', 138 / 2, 52 / 2, 114 / 2, 37 / 2)
ctx.drawImage('../../image/jc_3.png', 140 / 2, 101 / 2, 107 / 2, 17 / 2)
ctx.drawImage('../../image/jc_4.png', 370 / 2, 60 / 2, 325 / 2, 47 / 2)
ctx.drawImage('../../image/jc_5.png', 41 / 2, 177 / 2, 677 / 2, 109 / 2)
ctx.drawImage('../../image/jc_6.png', 126 / 2, 300 / 2, 148 / 2, 148 / 2)
ctx.drawImage('../../image/jc_6.png', 304 / 2, 300 / 2, 148 / 2, 148 / 2)
ctx.drawImage('../../image/jc_6.png', 482 / 2, 300 / 2, 148 / 2, 148 / 2)
ctx.drawImage('../../image/jc_6.png', 126 / 2, 474 / 2, 148 / 2, 148 / 2)
ctx.drawImage('../../image/jc_6.png', 304 / 2, 474 / 2, 148 / 2, 148 / 2)
ctx.drawImage('../../image/jc_6.png', 482 / 2, 474 / 2, 148 / 2, 148 / 2)
ctx.drawImage('../../image/jc_7.png', 126 / 2, 650 / 2, 120 / 2, 120 / 2)
ctx.drawImage('../../image/jc_7.png', 254 / 2, 650 / 2, 120 / 2, 120 / 2)
ctx.drawImage('../../image/jc_7.png', 382 / 2, 650 / 2, 120 / 2, 120 / 2)
ctx.drawImage('../../image/jc_7.png', 510 / 2, 650 / 2, 120 / 2, 120 / 2)
ctx.drawImage('../../image/jc_8.png', 136 / 2, 796 / 2, 479 / 2, 37 / 2)
ctx.drawImage('../../image/jc_9.png', 255 / 2, 846 / 2, 241 / 2, 37 / 2)
ctx.drawImage('../../image/jc_10.png', 121 / 2, 868 / 2, 509 / 2, 81 / 2)
ctx.drawImage('../../image/jc_11.png', 0, 986 / 2, 750 / 2, 136 / 2)
ctx.drawImage('../../image/jc_12.png', 45 / 2, 1030 / 2, 491 / 2, 43 / 2)
ctx.drawImage('../../image/jc_13.png', 688 / 2, 1038 / 2, 18 / 2, 32 / 2)
ctx.draw(true, setTimeout(function () {
wx.canvasToTempFilePath({
x: 0,
y: 0,
width: 700,
height: 750,
destWidth: 700,
destHeight: 750,
canvasId: 'myCanvas',
success: function (res) {
wx.saveImageToPhotosAlbum({
filePath: res.tempFilePath,
})
}
})
}, 1000))
//将生成好的图片保存到本地,需要延迟一会,绘制期间耗时
wx.showToast({
title: '分享图片生成中...',
icon: 'loading',
duration: 1000
});
 
},

/**
* 生命周期函数--监听页面显示
*/
onShow: function() {
 
},

/**
* 生命周期函数--监听页面隐藏
*/
onHide: function() {

},

/**
* 生命周期函数--监听页面卸载
*/
onUnload: function() {

},

/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function() {

},

/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function() {

},

/**
* 用户点击右上角分享
*/
onShareAppMessage: function() {

},
 
})

转载于:https://www.cnblogs.com/ylblogs/p/9645057.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
html2canvas 是一款能够将网页内容转换为 Canvas 图片的 JavaScript 库,而 uniapp 是一款支持多端开发的框架,可以将同一份代码打包成不同平台的应用。在 uniapp 中使用 html2canvas 可以很方便地将网页内容转换为图片,同时支持将本地图片也转换成 Canvas 图片。 在使用 html2canvas 时,需要先将要转换的 HTML 元素传入 html2canvas 函数中,然后通过回调函数获取到转换后的 Canvas 对象,最后可以将 Canvas 对象转换成图片文件,或者直接插入到 HTML 中展示。 对于本地图片的处理,可以先将图片转换成 base64 编码的字符串,然后将字符串作为图片的 src 属性值传入 HTML 中,再将包含图片的 HTML 元素传入 html2canvas 函数中进行转换。具体代码实现可以参考以下示例: ```javascript // 将本地图片转换成 base64 编码字符串 function getBase64Image(img) { var canvas = document.createElement("canvas"); canvas.width = img.width; canvas.height = img.height; var ctx = canvas.getContext("2d"); ctx.drawImage(img, 0, 0, img.width, img.height); var dataURL = canvas.toDataURL("image/png"); return dataURL.replace(/^data:image\/(png|jpg);base64,/, ""); } // 将包含本地图片的 HTML 元素转换成 Canvas 图片 html2canvas(document.querySelector("#content"), { onrendered: function(canvas) { // 将 Canvas 转换成图片文件 var imgData = canvas.toDataURL(); var img = new Image(); img.src = imgData; document.body.appendChild(img); } }); // HTML 代码示例 <div id="content"> <img src="data:image/png;base64,iVBORw0KG..."><!-- 本地图片 --> <p>Hello world!</p> </div> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值