canvasGetImageData 获取的是逻辑像素信息?
发布于 5 年前 作者 xuejie 9031 次浏览 来自 官方Issues

我用的手机是小米Max2屏幕宽度393 像素比2.75. 当我调用drawImage的时候, 发现传入的640 384 是物理像素也就是我的屏幕宽度393根本盛不下,如果调用CanvasContext.drawImage(string imageResource, number sx, number sy, number sWidth, number sHeight, number dx,number dy, number dWidth, number dHeight)这个API时候可以将图片映射一下CanvasContext.drawImage( xxx, 0,0,640*2.75,384*2.75,0,0,640,384)

这个时候图片显示正常,但是当我调用canvasGetImageData的时候,虽然获取到640 384的imageData,但是获取到的图片是缩小的,看起来是获取到了显示图片区域的逻辑像素。比如图片显示区域是640*384,获取的图像大小看起来是(640/2.75 384/2.75)

有什么办法可以获得设备canvas物理像素的data?或者操作物理像素而不是逻辑像素

                canvasctx.drawImage(tempFilePaths[0], 0,0640384);
                canvasctx.draw(false,
                    () => {
                      wx.canvasGetImageData({
                                                  canvasId'canvassrc',
                          x0,
                          y0,
                          width640,
                          height384,
                          success(res) {
1 回复

你好,建议换成使用canvas2d 可以获取物理像素的。

回到顶部