ios小程序,wx.canvastotempfilepath生成图片的模糊的问题
发布于 6 年前 作者 houguiying 11361 次浏览 来自 问答

手机版本

iPhone 6 plus  ios10.3.1

iPhoneSE  ios10.3.1

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

安卓端完全正常

6 回复

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

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

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

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

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

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

destWidth: 400,
destHeight: 400,

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

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

正解:

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

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

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

要把  px  转成 rpx

就不会模糊了

+1

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

回到顶部