收藏
回答

canvas.drawImage功能异常

我在微信小程序里使用canvas压缩图片的时候,总是只能得到一部分的图片,百度了若干个经验,尝试了若干种办法均不能解决,请各位大大们帮忙看一下,是代码写的不对,还是别的什么问题?


如下图,在chooseImage后,先调用getImageInfo看一下文件信息,是3872x2592的,希望能压缩到387x259.但是,在canvas压缩后,再getImageInfo,就只得到了300x150的图片,显示出来多数时候是387x259大小的一部分,偶尔会是白板。我尝试了先clear canvas、设置延时等办法,均不能改变这种结果。异常和图片无关,其他像素比例的图片,压缩的结果仍是300x150.在电脑上调试和安卓机上运行的结果一样,ios的还没有测试过。





最后一次编辑于  2018-10-08  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

2 个回答

  • 陈亮
    陈亮
    2018-09-19

    有人能给看一下吗?

    2018-09-19
    赞同 1
    回复
  • 飞翔的荷兰人
    飞翔的荷兰人
    2018-12-29

    哇。。。楼主解决了吗?我发了好几个帖子也没有回复

    2018-12-29
    赞同
    回复 8
    • 陈亮
      陈亮
      2018-12-29

      我这个自己搞定了,是相关代码没写全的问题,可能他们觉得这种问题不值得他们花力气吧。

      2018-12-29
      回复
    • 飞翔的荷兰人
      飞翔的荷兰人
      2018-12-29回复陈亮

      我和你的代码写的差不多,最后你补上了啥代码?

      2018-12-29
      回复
    • 陈亮
      陈亮
      2018-12-29

      你和我同样的问题?我的是在css里面canvas没定义size,可能系统就给了一个值,正好是被裁剪掉的那个大小。

      2018-12-29
      回复
    • 飞翔的荷兰人
      飞翔的荷兰人
      2018-12-29回复陈亮

      你这个应该是根据图片大小来画canvas吧,我是把缩放后的长宽值传给了wxml来确定canvas大小,你在CSS里是怎么做的?

      2018-12-29
      回复
    • 陈亮
      陈亮
      2018-12-29

      我跟你这个代码一样的:

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


      2018-12-29
      回复
    查看更多(3)