使用的是官方提供的代码片段:
function convertToGrayscale(data) {
let g = 0
for (let i = 0; i < data.length; i += 4) {
g = (data[i] * 0.3 + data[i+1] * 0.59 + data[i+2] * 0.11)
data[i] = g
data[i+1] = g
data[i+2] = g
}
return data
}
Page({
onReady() {
},
openAndDraw() {
wx.chooseImage({
success: (res) => {
const ctx = wx.createCanvasContext(‘canvasIn’, this);
ctx.drawImage(res.tempFilePaths[0], 0, 0)
ctx.draw()
}
})
},
export() {
wx.canvasToTempFilePath({
canvasId: ‘canvasOut’,
success: (res) => {
wx.saveImageToPhotosAlbum({
filePath: res.tempFilePath,
success: (res) => {
console.log(res)
},
fail: (err) => {
console.error(err)
}
})
},
fail: (err) => {
console.error(err)
}
}, this)
},
process() {
const cfg = {
x: 0,
y: 0,
width: 300,
height: 300,
}
wx.canvasGetImageData({
canvasId: ‘canvasIn’,
…cfg,
success: (res) => {
const data = convertToGrayscale(res.data)
wx.canvasPutImageData({
canvasId: ‘canvasOut’,
data,
…cfg,
success: (res) => {
console.log(res)
},
fail: (err) => {
console.error(err)
}
})
},
fail: (err) => {
console.error(err)
}
})
}
})
- 当前 Bug 的表现(可附上截图)
开发者工具使用基础库2.3.2版本(目前能选择的最新版,无2.4.0版本),处理正常
安卓手机处理正常
IOS 12.0手机无法显示,但回调函数输出errmsg正常,回调函数输出信息和开发者工具以及安卓手机的不一样
IOS11.3.1可以显示图片,但是绘制的仍是处理前的data,而不是处理后的data