华为mate30 drawImage行为和其他手机不一致?
发布于 6 年前 作者 xiulanjia 1216 次浏览 来自 官方Issues

华为mate30 canvas 2d drawImage行为和其他手机不一致

使用canvas 2d,

const { pixelRatio } = wx.getSystemInfoSync;
canvas.width = res[0].width * pixelRatio;
canvas.height = res[0].height * pixelRatio;

// 华为mate30机型 dx,dy,dWidth, dHeight需要除掉pixelRatio,才会显示正常
ctx.drawImage(img, 100, 100, cw * dpr, ch * dpr, 0, 0, w / pixelRatio, h / pixelRatio);

// 非华为mate30 dx,dy,dWidth, dHeight不需要除掉pixelRatio,就可以显示正常
ctx.drawImage(img, 100, 100, cw * dpr, ch * dpr, -w, 0, w, h);

1 回复

这说明你的尺寸设置不兼容,注意dpr的影响,没特殊要求可放弃使用dpr做数值变换

回到顶部