保存绘画图像而不降低图像质量

save paint image without drop image quality

我允许用户在图像上作画。保存后,图像质量会下降。如何防止这种情况发生?

Future<void> _save() async {
    RenderRepaintBoundary boundary =
        globalKey.currentContext.findRenderObject();
    ui.Image image = await boundary.toImage();
    ByteData byteData = await image.toByteData(format: ui.ImageByteFormat.png);
    Uint8List pngBytes = byteData.buffer.asUint8List();

    Navigator.pop(context, pngBytes);
}

完整代码在这里 https://github.com/ptyagicodecamp/flutter_cookbook/blob/widgets/flutter_widgets/lib/canvas/painting.dart

请帮忙!

尝试增加 pixelRatio,2 适合我:

Future<void> _save() async {
    RenderRepaintBoundary boundary =
        globalKey.currentContext.findRenderObject();
    ui.Image image = await boundary.toImage(pixelRatio: 2.0);
    ByteData byteData = await image.toByteData(format: ui.ImageByteFormat.png);
    Uint8List pngBytes = byteData.buffer.asUint8List();

    Navigator.pop(context, pngBytes);
}