收藏
回答

ios小程序,wx.canvastotempfilepath生成图片的模糊的问题

问题模块
API和组件

手机版本

iPhone 6 plus  ios10.3.1

iPhoneSE  ios10.3.1


ios端 通过wx.canvastotempfilepath生成的图片非常模糊,即便截取200x200的图片,显示为100X100依然模糊

安卓端完全正常

最后一次编辑于  2017-05-17
回答关注问题邀请回答
收藏

6 个回答

  • 杨恩永
    杨恩永
    2018-08-25

    正解:

    destWidth: that.data.canvasWidth * 750 / wx.getSystemInfoSync().windowWidth,

    destHeight: that.data.canvasHeight * 750 / wx.getSystemInfoSync().windowWidth,


    px = rpx / 750 * wx.getSystemInfoSync().windowWidth;

    要把  px  转成 rpx

    就不会模糊了


    2018-08-25
    赞同 3
    回复 2
    • ibo
      ibo
      2018-09-04

      感谢

      2018-09-04
      回复
    • 雄斌
      雄斌
      2018-09-10

      非常棒,图片清晰了很多

      2018-09-10
      回复
  • Dee
    Dee
    2017-06-11

    同学,我找到解决方案了..


    生成图片的尺寸大小的由Canvas决定的。微信API提供的输出高度、宽度只是把图片放大了,所以很模糊。



    也就是说Canvas的高宽度为:200*200,微信API的输出高宽度为:

    destWidth: 400,
    destHeight: 400,

    这样实际只是把图片放大2倍而已,所以才会很模糊。


    解决方案是:用2个Canvas,一个用来显示(200*200),一个用来导出图片(400*400)。

    2017-06-11
    赞同 2
    回复 1
    • 烘烘烘、
      烘烘烘、
      2018-08-24

      输出的时候destWidth、destHeight的值乘以设备像素密度也可以

      2018-08-24
      1
      回复
  • 小新JS 
    小新JS 
    2017-12-16

    你们使用没有问题吗?我怎么生成的是空白图片啊?

    2017-12-16
    赞同
    回复
  • Dseeker
    Dseeker
    2017-10-13

    那我有个问题,举个例子我手机使用canvas截图所得的图片是170*250,最终所需的图片要1700*2500的大小,也就是要在2个canvas上绘制了,然而问题来了,如果在1700*2500上直接绘制图片就会造成小程序闪退,把尺寸缩小到1200*1700左右就不会闪退,有什么办法解决么?

    2017-10-13
    赞同
    回复
  • Paper
    Paper
    2017-06-14

    楼上正解 页面中显示需要使用 rpx 进行自适应,但是保存后的图片直接用 px 做就可以

    2017-06-14
    赞同
    回复
  • Dee
    Dee
    2017-06-09

    +1


    iPhone、Android生成Canvas图片都很模糊

    2017-06-09
    赞同
    回复