如何在Flutter中导出屏幕的高分辨率图像?



如何以高分辨率将屏幕导出为Flutter中的图像或PDF ?是否有可能导出与背景图像和文本字段与用户输入为图像的容器?我尝试了这个解决方案(如何采取当前小部件的截图- Flutter),但分辨率是坏的。我需要不同尺寸的屏幕,例如40x60cm, 20x30cm和300Ddpi。

您尝试过使用pixelRatio吗?

ui.Image image = await boundary.toImage(pixelRatio: 10);

尝试pixelRatio并将其与较大的resp组合。没有cacheWidth-它确实工作,至少PNG输出。

但是要注意,pixelRatio(10)需要相当长的时间来捕获…

image代码片段:

child: ClipRRect(
borderRadius: BorderRadius.circular(15),
child: Image.file(
File(widget.myGroup.picture),
width: MediaQuery.of(context).size.width,
// NO cacheWidth:
// cacheWidth: MediaQuery.of(context).size.width,
fit: BoxFit.fitWidth,
),
),
_capturePng()的代码片段:
Future<Uint8List> _capturePng() async {
RenderRepaintBoundary boundary = globalKey.currentContext.findRenderObject();
if (boundary.debugNeedsPaint) {
print("Waiting for boundary to be painted.");
await Future.delayed(const Duration(milliseconds: 20));
return _capturePng();
}
var image = await boundary.toImage(pixelRatio: 10);
var byteData = await image.toByteData(format: ImageByteFormat.png);
return byteData.buffer.asUint8List();
}

(这里指的是关于在Stack Overflow上屏幕截图有扑动的问题)

最新更新