你想反馈一个 Bug 还是 提一个需求?


如果是 Bug:


* Bug 表现是什么?预期表现是什么?

使用createLinearGradient绘图,保存到本地相册后,保存到相册的图片异常,看下面截图。


ios相册图片效果(异常)


安卓机相册图片效果(正常)



* 如何复现?

用ios终端微信6.6.3版本测试,

复现代码如下:

wxml:


<canvas canvas-id="myCanvas" style="border: 1px solid;width:300px;height:300px;">canvas>

<button bindtap='onSaveTap'>保存到相册button>


js:


let ctx

Page({

onLoad: function (options) {

ctx = wx.createCanvasContext('myCanvas')

},

onSaveTap(){

ctx.setFillStyle('#ff0000')

ctx.fillRect(0, 0, 300, 150)


const grd = ctx.createLinearGradient(0, 150, 0, 300)

grd.addColorStop(0, '#00ff00')

grd.addColorStop(1, '#0000ff')

ctx.setFillStyle(grd)

ctx.fillRect(0, 150, 300, 150)


draw()

.then(() => {

return canvasToUrl()

})

.then(res => {

save(res)

})

.catch(e => {

console.log(e)

wx.showToast({

title: '保存失败',

})

})


function draw() {

return new Promise((resolve, reject) => {

ctx.draw(false, function () {

resolve()

})

})

}

// canvas绘图转本地地址

function canvasToUrl() {

return new Promise((resolve, reject) => {

wx.canvasToTempFilePath({

canvasId: 'myCanvas',

success: function (res) {

resolve(res.tempFilePath)

},

fail: function (err) {

reject(err)

}

})

})

}

// 保存到相册:参数本地路径

function save(path) {

return new Promise((resolve, reject) => {

wx.saveImageToPhotosAlbum({

filePath: path,

success: function (res) {

setTimeout(function () {

wx.showToast({

title: '已保存至相册',

icon: 'success',

duration: 1000

})

resolve(res)

}, 500)


},

fail: function (err) {

reject(err)

}

})

})


}

},

})


展开全部
收起
0回答
提交回答
  • 至过去的我

    2044人对此回答表示赞同

    我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多>
    发布于
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
咨询热线

13312967497

扫码添加业务即可随时咨询 还可领取小程序推广攻略

业务咨询: 13312967497
扫码咨询

扫码咨询套餐

回到顶部