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

发布于 7 年前作者 houguiying11460 次浏览最后编辑 7 年前来自 ask

手机版本

iPhone 6 plus  ios10.3.1

iPhoneSE  ios10.3.1

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

安卓端完全正常

6 回复
wenxiuying
wenxiuying1 楼6 年前

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

liaoxiulan
liaoxiulan2 楼6 年前

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

jietian
jietian3 楼6 年前

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

xiangyan
xiangyan4 楼6 年前

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

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

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

destWidth: 400,
destHeight: 400,

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

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

maming
maming5 楼6 年前

正解:

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

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

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

要把  px  转成 rpx

就不会模糊了

guiyingduan
guiyingduan6 楼5 年前

+1

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