https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial
Canvas组件在线文档是老版本,请问哪里查看新版本文档?Canvas组件,最新的开发工具,开发环境测试,没有新版本文档可用。还是说推荐使用旧API?
2020-05-06downloadFile时,fileID不对
小程序前端调用云函数上传图片到云存储不失败,请问是什么原因 ?小程序前端调用云函数上传图片到云存储不失败,请问是什么原因 ?[图片] [图片] [图片]
2020-05-04要不然scan里面有个回车符?
为什么两个一样的字符串,判断不相等?[图片][图片]
2020-05-03猜测是不是时序有问题,用户选择头像后,用了setData,这个是异步的,如果这时候你直接用canvas,可能头像地址还不能取到。
关于canvas绘制图像,生成卡片的问题?我想用canvas对用户头像进行绘制,在用户头像上增加一个边框,然后生成图片保存到相册。 我在电脑端利用开发者工具已经实现了功能,但在手机预览的时候无法只能绘制出边框却无法绘制头像,请问有没有解决办法。 核心代码如下: #wxml <!-- 头像生成控制台 --> <view class="user_out"> <image class="user_bg" src="{{bgsrc}}"></image> <image class="user_icon" src="{{src}}"></image> <!-- <view class="userAvatar"><open-data type="userAvatarUrl"></open-data></view> --> </view> <!-- 绘制图像画板部分 --> <view style='position:absolute;left:400rpx;'> <canvas canvas-id='myCanvas' style='height:600px;width:600px;position:absolute;left:400rpx;'></canvas> </view> #js //生成头像,即先画图像再画图像框 generate() { var self = this; var contex = wx.createCanvasContext('myCanvas'); //ttcanvas为该canvas的ID //var contex = ctx.getContext('2d'); var avatarurl_width = 600; //这个是画布宽 var avatarurl_heigth = 600; //这个是高 // var avatarurl_x = 50; // var avatarurl_y = 50; // contex.arc(avatarurl_width / 2 + avatarurl_x, avatarurl_heigth / 2 + avatarurl_y, avatarurl_width / 2, 0, Math.PI * 2, false);//这个地方我画了个头像的圆 // contex.clip(); contex.drawImage(self.data.src, 86, 86, 428, 428); // contex.drawImage(this.data.src, 105, 105, 630, 630); contex.restore(); contex.save(); contex.beginPath(); //开始绘制 // contex.arc(150, 50, 30, 0, Math.PI * 2, false); // contex.clip(); //contex.arc(25, 25, 25, Math.PI * 2, false); //contex.clip(); contex.drawImage(self.data.bgsrc, 0, 0, avatarurl_width, avatarurl_heigth); // 这个是我的背 contex.restore(); // contex.setFontSize(20) // contex.fillStyle = "#fff"; // contex.fillText(self.data.gameConfig.myScore, 130, 132) // contex.restore(); contex.draw(true, setTimeout(function () { wx.canvasToTempFilePath({ //导出图片 width: 600, height: 600, destWidth: 600, destHeight: 600, canvasId: 'myCanvas', success: res => { wx.saveImageToPhotosAlbum({ filePath: res.tempFilePath, success: function (data) { // console.log(data); wx.showToast({ title: '保存成功', icon: 'success', duration: 2000 }) }, fail: function (err) { // console.log(err); if (err.errMsg === "saveImageToPhotosAlbum:fail auth deny") { // console.log("用户一开始拒绝了,我想再次发起授权") // console.log('打开设置窗口') wx.openSetting({ success(settingdata) { console.log(settingdata) if (settingdata.authSetting['scope.writePhotosAlbum']) { // console.log('获取权限成功,给出再次点击图片保存到相册的提示。') wx.showToast({ title: '请再次保存', icon: 'success', duration: 2000 }) } else { // console.log('获取权限失败,给出不给权限就无法正常使用的提示') wx.showToast({ title: '获取权限失败,可能导致保存图片无法正常使用', icon: 'none', duration: 2000 }) } } }) } } }) } }, this) }, 100)) },
2020-05-03这有啥疑问,当然是平台,平台是多个卖家,自营就是自己一个卖家。平台资质要求很多,初期可以先自营上线跑起来,自己上点东西卖卖,以免耽误产品迭代时间,然后马上资质办起来再改类目吧。
想做一个类似咸鱼app的个人发布商品交易的小程序,应该申请电商平台还是自营商城?想做一个类似咸鱼app的个人发布商品交易的小程序,应该申请电商平台还是自营商城?
2020-05-01这准确来说不是wx:for的性能问题,而是setData数据包上限是1M,超过不给渲染。
wx:for语法的性能极限是多少?从接口中获取了将近两千条数据,想放到数组中然后用wx:for语法展示在页面上,结果真机页面直接白屏(未卡死,可以用返回键返回上个页面,上个页面内一切正常),在ide上未白屏,但是wx:for语法内的所有节点均未渲染 setData是成功的,数据被正确地放入this.data里面了,可以打印出来,但是wx:for渲染失败了
2020-04-29你不亮代码,鬼知道什么情况。 提醒下,draw的并发性能很差,最好是一张一张递归来执行,打完一张水印再打另一张。 然后可以用新的canvas 2D接口,ctx.drawImage,老接口不再维护了。
canvas的draw方法在循环里为啥只执行一次?我想在上传图片时,给图片加上水印。目前的方法是本地上传图片,获取图片数组。然后循环这个数组,利用canvas给每张图片加上水印。最后获得加上水印的图片数组。 但是在循环时发现ctx.draw()方法只执行一次。是什么情况
2020-04-29初看代码没发现问题,你得调试一下。打开云开发控制台-云函数-日志,看看是不是执行了,报了些什么错误,再不行,一步一步console.log 环境对了没有,试试这样: cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV })
云函数的调用问题,为什么成功调用了云函数,实际并没有去执行云函数?云函数是将云存储的excel文件下载下来,通过解析excel文件,再将其存入云数据库里,实际上云函数是调用了,但是云数据库并没有添加数据 const cloud = require('wx-server-sdk') cloud.init() var xlsx = require('node-xlsx'); const db = cloud.database() exports.main = async (event, context) => { let { fileID } = event //1,通过fileID下载云存储里的excel文件 const res = await cloud.downloadFile({ fileID: fileID, }) const buffer = res.fileContent const tasks = [] //用来存储所有的添加数据操作 //2,解析excel文件里的数据 var sheet1 = xlsx.parse(buffer); //获取到所有sheets sheets.forEach(function (sheet1) { console.log(sheet1['name']); for (var rowId in sheet1['data']) { console.log(rowId); var row = sheet1['data'][rowId]; //第几行数据 if (rowId > 0 && row) { //第一行是表格标题,从第2行开始读 //3,把解析到的数据存到excelList数据表里 const promise = db.collection('users') .add({ data: { name: row[0], //姓名 age: row[1], //年龄 address: row[2], //地址 wechat: row[3] //wechat } }) tasks.push(promise) } } }); // 等待所有数据添加完成 let result = await Promise.all(tasks).then(res => { return res }).catch(function (err) { return err }) return result }
2020-04-29没有吧,没找到的话返回数据集length是0,判断是0执行后续逻辑不行吗?
云数据库通过where函数找符合条件的数据组,若未找到,有类似else语句块吗?我想实现通过where函数查云数据库某个数据是否是某个值,如果全数据库的特定数据都不是这个值,执行某个操作,有类似else的语句块吗?
2020-04-29云开发默认提供了两套环境,你可以其中一套用作测试,另一套用作线上。你不会只用了一套吧?
云开发如何建立测试数据库?小程序上线后,二期开发调整,不希望影响线上数据库,有没有什么测试用数据库机制,不会改变线上数据?
2020-04-28