收藏
回答

iphone5s利用canvas压缩照片截取不全

框架类型 问题类型 操作系统版本 手机型号 微信版本
小程序 Bug iOS 10.1.2 iphone52 7.0.3

- 当前 Bug 的表现(可附上截图)


- 预期表现


- 复现路径


- 提供一个最简复现 Demo


在做图片上传的功能时,需要通过canvas对图片进行压缩再上传,其他机型都是可以正常压缩的,但是在iphone5s下只能截取照片的一部分,不知道这个问题怎么解决。

小米note3显示的图片

iphone5s显示的图片,只能截取左上角的部分

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

1 个回答

  • 疯狂的小辣椒
    疯狂的小辣椒
    2019-02-20

    麻烦给个相关的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html),我们定位下问题

    2019-02-20
    有用
    回复 4
    • 2019-02-20

      JS:

      wx.getImageInfo({

      src: tempFilePaths[0],

      success: function (res) {

      var ctx = wx.createCanvasContext('photo_canvas');

      var canvasWidth = res.width

      var canvasHeight = res.height;

      var str = canvasWidth / canvasHeight;


      if (str > 1) {

      console.log('heng')

      if (canvasWidth > _this.data.screenWidth){

      canvasHeight = _this.data.screenHeight;

      canvasWidth = str * canvasHeight;

      //横版图片

      _this.setData({

      canvasHeight: canvasHeight,

      canvasWidth: canvasWidth,

      })

      } else {

      _this.setData({

      canvasHeight: canvasHeight,

      canvasWidth: canvasWidth,

      })

      }

      } else {

      if (canvasHeight > _this.data.screenHeight){

      canvasWidth = _this.data.screenWidth;

      canvasHeight = canvasWidth / str;

      //竖版图片

      _this.setData({

      canvasWidth: canvasWidth,

      canvasHeight: canvasHeight,

      })

      } else {

      _this.setData({

      canvasWidth: canvasWidth,

      canvasHeight: canvasHeight,

      })

      }

      }

      //设置canvas尺寸

      ctx.drawImage(tempFilePaths[0], 0, 0, canvasWidth, canvasHeight)

      ctx.draw(true, function () {

      });

      }

      })



      WXML:

      <canvas canvas-id="photo_canvas" style="width:{{canvasWidth}}px;height:{{canvasHeight}}px;position: absolute;left:0px;top:0px; "></canvas>


      这样可以吗?


      2019-02-20
      回复
    • 疯狂的小辣椒
      疯狂的小辣椒
      2019-02-20回复

      麻烦按照上面提供的教程来提供代码片段

      2019-02-20
      回复
    • 2019-02-20回复疯狂的小辣椒

      代码片段:https://developers.weixin.qq.com/s/sj0Hlkm9796y


      微信开发者工具显示正常,但是真机的时候显示不全,谢谢

      2019-02-20
      回复
    • @A-俞喜春
      @A-俞喜春
      2019-04-09回复

      请问 这个问题你解决了没

      2019-04-09
      回复
登录 后发表内容