import 'dart:typed_data'; import 'dart:ui' as ui; import 'package:flutter/cupertino.dart'; import 'package:flutter/rendering.dart'; class CaptureUtil { CaptureUtil._(); static Future captureWidgetToImage(GlobalKey key, {double pixelRatio = 2.5}) async { try { RenderRepaintBoundary boundary = key.currentContext!.findRenderObject() as RenderRepaintBoundary; final ui.Image image = await boundary.toImage(pixelRatio: pixelRatio); final byteData = await image.toByteData(format: ui.ImageByteFormat.png); return byteData?.buffer.asUint8List(); } catch (e) { debugPrint("截图失败: $e"); return null; } } }