收藏
回答

canvas rotate 旋转后绘制图片安卓与 IOS 表现不一致

框架类型 问题类型 操作系统版本 手机型号 微信版本
小程序 Bug IOS 16.0.2 IPhone 13 mini,红米K40 8.0.42
<view>


    <canvas
      id="canvas"
      canvas-id="canvas"
      type="2d"
      style="width:200px;height:200px;background-color: yellow;"
    />
</view>


Page({
  onLoad() {
    wx.createSelectorQuery()
    .select('#canvas'// 在 WXML 中填入的 id
    .fields({ nodetruesizetrue })
    .exec((res) => {
        // Canvas 对象
        const canvas = res[0].node
        // Canvas 画布的实际绘制宽高
        const renderWidth = res[0].width
        const renderHeight = res[0].height
        // Canvas 绘制上下文
        const ctx = canvas.getContext('2d')

        // 初始化画布大小
        const dpr = wx.getWindowInfo().pixelRatio
        canvas.width = renderWidth * dpr
        canvas.height = renderHeight * dpr
        ctx.scale(dpr, dpr)

        ctx.rotate((90 * Math.PI) / 180);
        const image = canvas.createImage();
        image.onload = () => {
            // 顺时针旋转90度
            // 开发工具与安卓正常,IOS不正常
            ctx.drawImage(
                image,
                0,0,
                200,
                -200
            );
        };
        image.src = 'https://th.bing.com/th/id/OIP.JuSM25g1b2eEYu-2KbGpVwHaHI?pid=ImgDet&rs=1';
    })
  },
})




开发工具和安卓正常展示


IOS绘制图片失败

回答关注问题邀请回答
收藏

1 个回答

登录 后发表内容