file_utils.dart 979 B

123456789101112131415161718192021222324252627282930
  1. import 'dart:io';
  2. import 'dart:typed_data';
  3. import 'dart:ui' as ui;
  4. import 'package:flutter/cupertino.dart';
  5. import 'package:flutter/rendering.dart';
  6. import 'package:path_provider/path_provider.dart';
  7. class FileUtils {
  8. static Future<File> convertUint8ListToFile(Uint8List data, String fileName) async {
  9. final directory = await getApplicationCacheDirectory();
  10. final filePath = '${directory.path}/$fileName';
  11. final file = File(filePath);
  12. await file.writeAsBytes(data);
  13. return file;
  14. }
  15. /// 从Context中获取图片
  16. static Future<Uint8List?> getBitmapFromContext(
  17. BuildContext? context, {
  18. double pixelRatio = 3.0,
  19. }) async {
  20. if (context == null) return null;
  21. RenderRepaintBoundary render = context.findRenderObject() as RenderRepaintBoundary;
  22. ui.Image image = await render.toImage(pixelRatio: pixelRatio);
  23. ByteData? bytes = await image.toByteData(format: ui.ImageByteFormat.png);
  24. return bytes?.buffer.asUint8List();
  25. }
  26. }