小程序canvasu真机上数据图片不能使用
canvas遇到的坑
1.文字换行
2.真机不能使用网络数据图片(真坑) 点击显示效果我就不写了,你们可以自己加一下
全部代码贴出来
css
#preview {
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.6);
position: fixed;
z-index: 999;
top: 0;
overflow: hidden;
bottom: 0;
}
#preview button {
width: 43%;
position: absolute;
bottom: 218rpx;
left: 28%;
z-index: 5;
border-radius: 37rpx;
height: 66rpx;
line-height: 66rpx;
background: #fd5b4c;
}
#preview image {
width: 87%;
position: absolute;
top: 8%;
left: 6%;
z-index: 3;
border-radius: 19rpx;
}
#preview .hide1 image {
width: 10%;
height: 6%;
position: absolute;
right: 0;
left: 84%;
}
#preview text {
position: absolute;
bottom: 170rpx;
left: 25%;
z-index: 5;
font-size: 22rpx;
color: gainsboro;
}
canvas {
position: fixed;
top: 0;
left: 10000rpx;
}
wxml
<canvas canvas-id="shareImg" style="width:545px;height:771px;"></canvas>
<view hidden='{{hidden}}' id='preview' class="hide1{{show1?'':'show'}}">
<image src='{{prurl}}' mode='widthFix'></image>
<button type='primary' size='mini' bindtap='save'>保存分享图</button>
<text>保存后,可以从手机相册分享到朋友圈</text>
<view class="hide1{{show1?'':'show'}}" bindtap='onTap'>
<image src='../../images/Close.png'></image>
</view>
</view>
js
getData() {
/*商品详情接口数据代码省略*/
//下载图片
var that = this;
wx.downloadFile({ //需要小程序后台添加downloadFile域名
url: res.result.product.images[0].url, //接口返回数据
type: 'image', //类别
success: function (res) {
var _avatarPath = res.tempFilePath
const ctx = wx.createCanvasContext('shareImg');
var imgPath = _avatarPath //商品图
console.log(imgPath)
var bgImgPath = '../../images/qrcode.jpg'; //二维码图
ctx.setFillStyle('white')
ctx.fillRect(0, 0, 6000, 2800);
ctx.drawImage(imgPath, 120, 30, 320, 320);
ctx.drawImage(bgImgPath, 40, 500, 120, 110);
ctx.setFontSize(22)
ctx.beginPath("")
var lineWidth = 0;
var canvasWidth = 300;
var initHeight = 380;
var lastSubStrIndex = 0;
ctx.setFillStyle('black')
var str = that.data.product.title //商品价格名称
ctx.fillText('长按识别图中的小程序码', 190, 540)
ctx.fillText('查看详情', 190, 580)
//文字换行 这个地方有可能报错注释掉就可以
for (let i = 0; i < str.length; i++) {
lineWidth += ctx.measureText(str[i]).width;
if (lineWidth > canvasWidth) {
ctx.fillText(str.substring(lastSubStrIndex, i), 18, initHeight); //绘制截取部分
initHeight += 34; //文字行高
lineWidth = 0;
lastSubStrIndex = i;
}
if (i == str.length - 1) {//绘制剩余部分
ctx.fillText(str.substring(lastSubStrIndex, i + 1), 18, initHeight);
}
}
ctx.setFillStyle('red')
ctx.fillText(that.data.product.price, 460, 380) //that.data.product.price 商品价格数据
ctx.setStrokeStyle('gainsboro')
ctx.strokeRect(20, 450, 510, 0.1)
ctx.stroke()
ctx.draw()
}
})
}
小程序canvasu真机上数据图片不能使用的更多相关文章
- 微信小程序开发工具的数据,配置,日志等目录在哪儿? 怎么找?
原文地址:http://www.wxapp-union.com/portal.php?mod=view&aid=359 本文由本站halfyawn原创:感谢原创者:如有疑问,请在评论内回复 ...
- 在微信小程序页面间传递数据总结
在微信小程序页面间传递数据 原文链接:https://www.jianshu.com/p/dae1bac5fc75 在开发微信小程序过程之中,遇到这么一些需要在微信小程序页面之间进行数据的传递的情况, ...
- 微信小程序前台的用户数据入库(后台Laravel)
首先 我们可以看到微信小程序官方 文档 wx.login api-login.jpg 通过此图 我们知道 前台要传 一个 code给后台,后台拿到code 并结合appid和appsecret请求 ...
- 小程序canvas绘制base64数据格式图片
翻了微信小程序官方文档,看了看画板drawImage的用法,官方对所要绘制的图片资源路径并没有很详细,模棱两可,没说支持什么格式的路径.今天我就试一下支不支持base64格式的图片 随便找张图片从网上 ...
- 微信小程序使用wxParse,解决图片显示路径问题
我们经常用到发布文章,用的是UEditor百度富文本编辑器,方便排版,存储的也是html代码,这样小程序解析出来的也是排版的样式,但是使用wxParse解析html的时候,因为存储的是图片的相对路径, ...
- 【微信小程序】微信小程序wx.previewImage预览图片
一.小知识 二.例子,配合轮播图使用效果更佳!(如图1) 1.wxml <scroll-view scroll-y="true"> <swiper catchta ...
- [转]微信小程序开发(二)图片上传+服务端接收
本文转自:http://blog.csdn.net/sk719887916/article/details/54312573 文/YXJ 地址:http://blog.csdn.net/sk71988 ...
- 微信小程序 setData动态修改数据数组的值
1.问题说明 有一组数据,用来存储图片路径,动态修改图片的路径来上传图片,而小程序JS只能通过事件获取时机和setData方法修改数据来改变view. 而用这样写的方式明显是错误的 2.解决办法 字符 ...
- 小程序editor篇-基本使用图片上传
今天小程序项目内,要弄一个editor,富文本编辑功能,支持图文并茂,前几天刚好看了小程序的demo应用,刚好看到editor这个东东,那就安排! 官网示例git地址 大概看了下文档,拉下官方示例,看 ...
随机推荐
- BNU-2017.7.4排位赛2总结
链接:https://www.bnuoj.com/v3/contest_show.php?cid=9147#info A题 sort之后交换首尾两个数. B题 for一遍,如果每个数都在对应位置了,输 ...
- 题解【bzoj3240 [NOI2013]矩阵游戏】
挖坑2333 等我把代码写完了再写
- 类的起源与metaclass
一.概述 我们知道类可以实例化出对象,那么类本身又是怎么产生的呢?我们就来追溯一下类的起源. 二.类的起源 2.1 创建一个类 class Foo(object): def __init__(self ...
- qq快速登陆
http://www.cnblogs.com/1996V/p/7481823.html qq快速登陆
- vue-router的新奇写法
加班中........................... 我们以前写路由是下面这样的 这导致了页面一多,我们的路由文件内容就比较多,不好看. 下面我为大家介绍一下,新的一种写法 这种写法,我们只需 ...
- 关于变长数组的一点小想法-C语言定义数组但是数组长度不确定怎么办
很多数据机构,比如栈,链表等,都可以动态分配存储空间 那么数组呢?一般声明时都要指定数组长度,那么数组可以实现动态分配么? 假设数组存的是int型 那么 你先申请10个元素 int* a = (int ...
- JS获取列表索引值
html部分 <ul id="test"> <li>111</li> <li>222</li> <li>33 ...
- CentOS部署.NetCore服务
1. 安装CentOs,可使用最小安装包镜像:http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-17 ...
- PowerShell入门
最近需要写个Windows的脚本,以前一直使用cmd.exe来写批处理脚本,这次接触到了PowerShell,准备把学习过程中学到的知识点整理在这里: 相关文章: 1.https://www.cnbl ...
- jquery 生成二维码
jquery的二维码生成插件qrcode,在页面中调用该插件就能生成对应的二维码 <!DOCTYPE html> <html> <head> <meta ch ...