capture_util.dart 692 B

123456789101112131415161718192021222324
  1. import 'dart:typed_data';
  2. import 'dart:ui' as ui;
  3. import 'package:flutter/cupertino.dart';
  4. import 'package:flutter/rendering.dart';
  5. class CaptureUtil {
  6. CaptureUtil._();
  7. static Future<Uint8List?> captureWidgetToImage(GlobalKey key,
  8. {double pixelRatio = 2.5}) async {
  9. try {
  10. RenderRepaintBoundary boundary =
  11. key.currentContext!.findRenderObject() as RenderRepaintBoundary;
  12. final ui.Image image = await boundary.toImage(pixelRatio: pixelRatio);
  13. final byteData = await image.toByteData(format: ui.ImageByteFormat.png);
  14. return byteData?.buffer.asUint8List();
  15. } catch (e) {
  16. debugPrint("截图失败: $e");
  17. return null;
  18. }
  19. }
  20. }