考虑变通一下,存成gif [滑稽]
小程序可以保存视频到相册,小游戏可以保存视频到相册吗?- 需求的场景描述(希望解决的问题) - 希望提供的能力 想问下怎样才能把视频保存到相册?求助求助
2019-09-05官方大兄弟,有考虑支持的可能吗?[/滑稽]
关于Canvas缩放时插值算法的控制属性image-rendering支持由于Android小游戏canvas无法设置imageRendering样式,导致缩放产生模糊。 在模拟器及IOS中可正常设置,无此问题。 - 当前 Bug 的表现(可附上截图) [图片] - 预期表现 [图片] - 复现路径 进入小游戏即可出现 - 提供一个最简复现 Demo [代码]var[代码] [代码]canvas = wx.createCanvas();[代码][代码]var[代码] [代码]buff = wx.createCanvas();[代码] [代码]var[代码] [代码]sysinfo = wx.getSystemInfoSync();[代码][代码]buff.width = sysinfo.windowWidth;[代码][代码]buff.height = sysinfo.windowHeight;[代码][代码]//由于无法控制css的宽高,只能缩小画布实现放大[代码][代码]canvas.width = sysinfo.windowWidth/4;[代码][代码]canvas.height = sysinfo.windowHeight/4;[代码] [代码] [代码] [代码] [代码] [代码]/**[代码][代码] [代码][代码]* [代码][代码] [代码][代码]* 此样式在Android无法使用,导致模糊问题[代码][代码] [代码][代码]* canvas.style.imageRendering='pixelated';[代码][代码] [代码][代码]*/[代码] [代码]var[代码] [代码]x = 10;[代码][代码]var[代码] [代码]y = 10;[代码] [代码]var[代码] [代码]buffctx = buff.getContext([代码][代码]'2d'[代码][代码]);[代码][代码]var[代码] [代码]mainctx = canvas.getContext([代码][代码]'2d'[代码][代码]);[代码][代码]//背景色[代码][代码]buffctx.fillStyle = [代码][代码]'#ffffff'[代码][代码];[代码][代码]buffctx.fillRect(0, 0, buff.width, buff.height);[代码][代码]//X图像数据[代码][代码]var[代码] [代码]xdata = [[代码][代码] [代码][代码]1, 0, 0, 0, 1,[代码][代码] [代码][代码]0, 1, 0, 1, 0,[代码][代码] [代码][代码]0, 0, 1, 0, 0,[代码][代码] [代码][代码]0, 1, 0, 1, 0,[代码][代码] [代码][代码]1, 0, 0, 0, 1[代码][代码]];[代码][代码]var[代码] [代码]img=buffctx.getImageData(x,y,5,5);[代码][代码]for[代码][代码]([代码][代码]var[代码] [代码]i=0,m=xdata.length;i<m;i++){[代码][代码] [代码][代码]//每像素4字节[代码][代码] [代码][代码]if[代码][代码](xdata[i] == 1){[代码][代码] [代码][代码]img.data[i * 4] = 0;[代码][代码] [代码][代码]img.data[i * 4+1] = 0;[代码][代码] [代码][代码]img.data[i * 4+2] = 0;[代码][代码] [代码][代码]img.data[i * 4+3] = 255;[代码][代码] [代码][代码]} [代码][代码]else[代码] [代码]{[代码][代码] [代码][代码]img.data[i * 4] = 255;[代码][代码] [代码][代码]img.data[i * 4 + 1] = 255;[代码][代码] [代码][代码]img.data[i * 4 + 2] = 255;[代码][代码] [代码][代码]img.data[i * 4 + 3] = 255;[代码][代码] [代码][代码]}[代码][代码]}[代码][代码]//画入buff[代码][代码]buffctx.putImageData(img, x, y);[代码][代码]//从buff画入主屏,此时产生缩放效果[代码]setInterval(function(){ mainctx.drawImage(buff, 0, 0); },1000);
2018-12-22Canvas Style的一个重要属性: image-rendering:pixelated 这对像素化游戏非常重要,但却没有支持!
小游戏canvas接口不齐全关于Canvas官方的接口说明如下: https://developers.weixin.qq.com/minigame/dev/document/render/canvas/RenderingContext.html 但是实际测试发现,还有不少问题, Canvas Style的支持: 目前Canvas的属性只支持width和height,没有支持style的width,height,top和left. 2. Canvas getContext的支持: getContext这个函数似乎只支持传入"2d"和"webgl",无法动态支持如下属性: 2d 上下文属性: alpha: boolean值表明canvas包含一个alpha通道. 如果设置为false, 浏览器将认为canvas背景总是不透明的, 这样可以加速绘制透明的内容和图片. WebGL上下文属性: alpha: boolean值表明canvas包含一个alpha缓冲区。 depth: boolean值表明绘制缓冲区包含一个深度至少为16位的缓冲区。 stencil: boolean值表明绘制缓冲区包含一个深度至少为8位的模版缓冲区。 antialias: boolean值表明是否抗锯齿。 premultipliedAlpha: boolean值表明页面排版工人将在混合alpha通道前承担颜色缓冲区。 preserveDrawingBuffer: 如果这个值为true缓冲区将不会清除它,会保存下来,直到被清除或被使用者覆盖。 failIfMajorPerformanceCaveat: boolean值表明在一个系统性能低的环境创建该上下文。 这些属性,尤其是WebGL的属性包括depth和stencil都非常重要!!! 希望官方可以尽快支持好!!!
2018-12-19