小程序
小游戏
企业微信
微信支付
扫描小程序码分享
手机版本
iPhone 6 plus ios10.3.1
iPhoneSE ios10.3.1
ios端 通过wx.canvastotempfilepath生成的图片非常模糊,即便截取200x200的图片,显示为100X100依然模糊
安卓端完全正常
7 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
正解:
destWidth: that.data.canvasWidth * 750 / wx.getSystemInfoSync().windowWidth,
destHeight: that.data.canvasHeight * 750 / wx.getSystemInfoSync().windowWidth,
px = rpx / 750 * wx.getSystemInfoSync().windowWidth;
要把 px 转成 rpx
就不会模糊了
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
感谢
非常棒,图片清晰了很多
同学,我找到解决方案了..
生成图片的尺寸大小的由Canvas决定的。微信API提供的输出高度、宽度只是把图片放大了,所以很模糊。
也就是说Canvas的高宽度为:200*200,微信API的输出高宽度为:
destWidth: 400, destHeight: 400,
这样实际只是把图片放大2倍而已,所以才会很模糊。
解决方案是:用2个Canvas,一个用来显示(200*200),一个用来导出图片(400*400)。
输出的时候destWidth、destHeight的值乘以设备像素密度也可以
顽固性iOS,安卓一点问题没有
你们使用没有问题吗?我怎么生成的是空白图片啊?
那我有个问题,举个例子我手机使用canvas截图所得的图片是170*250,最终所需的图片要1700*2500的大小,也就是要在2个canvas上绘制了,然而问题来了,如果在1700*2500上直接绘制图片就会造成小程序闪退,把尺寸缩小到1200*1700左右就不会闪退,有什么办法解决么?
楼上正解 页面中显示需要使用 rpx 进行自适应,但是保存后的图片直接用 px 做就可以
+1
iPhone、Android生成Canvas图片都很模糊
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
正解:
destWidth: that.data.canvasWidth * 750 / wx.getSystemInfoSync().windowWidth,
destHeight: that.data.canvasHeight * 750 / wx.getSystemInfoSync().windowWidth,
px = rpx / 750 * wx.getSystemInfoSync().windowWidth;
要把 px 转成 rpx
就不会模糊了
感谢
非常棒,图片清晰了很多
同学,我找到解决方案了..
生成图片的尺寸大小的由Canvas决定的。微信API提供的输出高度、宽度只是把图片放大了,所以很模糊。
也就是说Canvas的高宽度为:200*200,微信API的输出高宽度为:
destWidth: 400, destHeight: 400,
这样实际只是把图片放大2倍而已,所以才会很模糊。
解决方案是:用2个Canvas,一个用来显示(200*200),一个用来导出图片(400*400)。
输出的时候destWidth、destHeight的值乘以设备像素密度也可以
顽固性iOS,安卓一点问题没有
你们使用没有问题吗?我怎么生成的是空白图片啊?
那我有个问题,举个例子我手机使用canvas截图所得的图片是170*250,最终所需的图片要1700*2500的大小,也就是要在2个canvas上绘制了,然而问题来了,如果在1700*2500上直接绘制图片就会造成小程序闪退,把尺寸缩小到1200*1700左右就不会闪退,有什么办法解决么?
楼上正解 页面中显示需要使用 rpx 进行自适应,但是保存后的图片直接用 px 做就可以
+1
iPhone、Android生成Canvas图片都很模糊