把并发去掉了,改为递归函数一张一张压缩,初步试下来问题没再出现。 回想问题的细节,往往第一张和第二张空白,所以,可以想象前面的图片开始canvasToTempFilePath时,后面的图片还在drawImage,资源比较吃紧,导致执行异常。一张一张搞就避免的这个问题。 Admin提供的方案我也试了,也能解决问题,但是在我的场景下等待2秒钟比较浪费时间,影响客户体验。
canvasToTempFilePath并发调用,偶现空白图片,各位有遇到吗?批量处理图片压缩用到这个接口,新的canvas 2D接口。 先选择多张图片,然后一个for循环,drawImage,接一个canvasToTempFilePath。 为了支持并发,我也在wxml放了对应个数的canvas标签。 偶现第一张或第二张空白图,图大小2k左右。(正常图20K以上)。 亮代码: let photos = this.data.photos let l = photos.length for (let i = 0; i < l; i++) { let photo = photos[i] let canvasId = '#compress' + i wx.createSelectorQuery() .select(canvasId) .fields({ node: true, size: true, }) .exec(res => { const canvas = res[0].node const ctx = canvas.getContext('2d') canvas.width = 540 canvas.height = 540 const image = canvas.createImage() image.src = photo.path image.onload = () => { const width = image.width const height = image.height const sizeRatio = width > height ? width / height : height / width let sWidth, sHeight, sX, sY, dWidth, dHeight //这里一些处理图片尺寸的逻辑,省略... ctx.drawImage(image, sX, sY, sWidth, sHeight) wx.canvasToTempFilePath({ canvas, fileType: 'jpg', quality: 0.8, width: dWidth, height: dHeight, success: res => { photo.pathCompressed = res.tempFilePath } }) photo.k = photo.size //restore the bytes size photo.sizeOriginal = [width, height] photo.size = [dWidth, dHeight] } }) } 不知道去掉并发会不会解决问题,这种偶现的问题真难排查。
2020-04-20cloud.uploadFile({ cloudPath: cloudPath, fileContent: buffer//文件流 })
云函数中如何实现将从网上获得文件流保存到云储存?如题,给学校的教务网站做一个小程序,云函数在模拟登陆的时候验证码图片是文件流,怎么将这个验证码图片保存到云储存
2020-04-20没用到过,保存一个原值在变量里,然后用this.setData来重置也挺方便吧。
关于form表单是否提供了reset的相关api?重置表单内容只能通过按钮type=reset去触发 是否有相关api直接可以调用清除表单内容呢?
2020-04-17删除是pull,不是push。你看下文档能不能解决问题: https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-sdk-api/database/command/Command.pull.html 如果还有疑问,请说一下业务里想根据什么条件删,我们一起看看。 如果像你说的只是删除index为0的,都不用pull,前面有大佬也说了,可以用_.remove(),试试这样行不行: update({ data: { 'videolist.0.video.0': _.remove() } })
云开发,如何根据数组下标,删除对应的对象?紧急求救[图片] 比如这里,应该如何删除videolist[0].video[0]的对象。目前虽然通过js的splice删除后,再整个数组更新回去。但是感觉太麻烦,push和pushAll是如何使用的,请各位大佬指点
2020-04-17我猜测previewImage是调用了微信原生控件,只要微信已经授权了就可以,不需要小程序授权。
请问为什么 wx.previewImage 预览图片后,不需要授权就可以保存到相册?请问为什么 wx.previewImage 预览图片后,长按图片后点击保存,不需要授权就可以保存到相册? 如果是 使用 wx.saveImageToPhotosAlbum ,就会在小程序内弹窗提示授权。 理论上都会弹窗提示授权的啊
2020-04-15我估计你是不是搞不清楚res.data是什么类型。它是个数组,如果处理一条记录,要用res.data[0],再取各种值。如果要处理多条记录,那就在wxml里面通过wx:for来循环解析数组,再取各种值。 你如果搞不清楚,把所有代码(wxml、js)都放上来,说清楚哪里出错,我们帮你改代码更直接。
应该用什么方法将云数据库中的值赋值给data中的变量?data: { images: [], images2: [], students: [], // student:[], sname: '', sno: '', depart: '', cno: '', h: '', min: '', mon: '', d: '', ch: '', cmin: '', cmon: '', cd: '', }, const db = wx.cloud.database() db.collection('classes').where({ cno: this.cno }).get({ success: res => { console.log(res.data) this.data.ch = res.data.h, this.data.cd = res.data.d, this.data.cmin= res.data.min, this.data.cmon = res.data.mon // this.setData({ // ch:this.h, // cmin: res.data.min, // cmon: res.data.mon, // cd: res.data.d
2020-04-15看起来是小程序自己报的,不是官方报的,你在源码里搜索这句文案,再找原因。
获取用户openid失败?新用户登录时,显示获取用户openid失败,请问如何处理? [图片]
2020-04-13云函数端没有权限控制,可以读取到所有数据,只能通过查询条件控制了,比如 where({ _openid: openid })
怎么修改通过云函数获取的数据库集合的权限?RT 比如用户有成百上千篇文章,怎么通过权限设置让每个用户只获取到自己写的文章? 还是必须要小程序端吗 望请指教。 谢谢!
2020-04-13官方小二说的对。 https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Using_images img.src = 'data:image/gif;base64,R0lGODlhCwALAIAAAAAA3pn/ZiH5BAEAAAEALAAAAAALAAsAAAIUhA+hkcuO4lmNVindo7qyrIXiGBYAOw=='
新版canvas怎么画base64图片?请问新版canvas 2d怎么画base64图片,我是先把base64转成本地图片,得到的路径为http://usr/tmp_base64src.jpg。然后canvas.createImage()设置src为前面那个路径,运行后报错了。 [图片]
2020-04-13我这也报了 日志内容 Request ID: 3f5d2f2b-7d8c-11ea-859d-525400f89277 执行时间: 0ms内存使用: Zero KB 返回结果 {"errorCode":-1,"errorMessage":"ResourceExhausted"} 日志 START RequestId: 3f5d2f2b-7d8c-11ea-859d-525400f89277 Event RequestId: 3f5d2f2b-7d8c-11ea-859d-525400f89277 ERROR RequestId:3f5d2f2b-7d8c-11ea-859d-525400f89277 Result:{"errorCode":-1,"errorMessage":"ResourceExhausted"} END RequestId: 3f5d2f2b-7d8c-11ea-859d-525400f89277 Report RequestId: 3f5d2f2b-7d8c-11ea-859d-525400f89277 Duration:0ms Memory:256MB MemUsage:0.000000MB
云函数执行报错,ResourceExhausted云开发-云函数执行报错,{"errorCode":-1,"errorMessage":"ResourceExhausted"} 我检查了一下我的资源使用量并未超出. [图片]
2020-04-13