Flutter Tips

widgetToImage

Future<Uint8List> widgetToImage() async {
Completer<Uint8List> completer = Completer();
RenderRepaintBoundary render =
_globalKey.currentContext!.findRenderObject() as RenderRepaintBoundary;

ui.Image image = await render.toImage(pixelRatio: 1.0);
ByteData? byteData = await image.toByteData(format: ui.ImageByteFormat.png);
completer.complete(byteData?.buffer.asUint8List());
return completer.future;

}

///保存海报到相册
_savePoster() async {
Uint8List pngBytes = await widgetToImage();
final result = await ImageGallerySaver.saveImage(pngBytes, quality: 100);
if (result != null) {
Toast.showToast("Saved To Album".tr());
}
setState(() {
downloading = false;
});
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容