首页 > 解决方案 > 在 Flutter 中,如何将设备像素比与从头创建的画布相关联?

问题描述

我正在使用以下代码片段来记录并从画布中获取图像。图像在某些设备上显示模糊。

setLayerBuffer(int layerID) async {
 recorder = new ui.PictureRecorder();
 canvas2 = new Canvas(recorder, canvasRect); //canvasRect is the drawing area

 for (var myLayer in layers)
    if (myLayer.id == layerID) {
      if (myLayer.buffer != null) {
        canvas2.drawImage(myLayer.buffer, new Offset(0.0, 0.0), Paint());
      }
      doPaint(canvas2, 1); //this will draw on canvas2
      break;
    }

 var picture = recorder.endRecording();
 buffer = await picture.toImage(
    canvasRect!.width.round(), canvasRect!.height.round());
 setBuffer(layerID, buffer!);  // store image as buffer in layer
 paintController.myNotifyListeners(); //paint the main canvas wiht buffers of layers

}

根据此https://github.com/flutter/flutter/issues/17782,与 CustomPaint 创建的画布不同,从头创建的画布没有设置设备像素比。

我确实尝试按照上述链接的建议使用设备像素比设置画布比例。但是,设置比例后图像会消失。如何设置画布以使用设备像素比?

标签: imagefluttercanvasfuzzy

解决方案


推荐阅读