import 'dart:async'; import 'dart:io'; import 'dart:typed_data'; import 'dart:ui' as ui; import 'dart:ui'; import 'package:kmpdfkit_demo/widgets/function/attrwidget/attr_signature_list_widget.dart'; import 'package:path_provider/path_provider.dart'; /// signature_image_util.dart /// /// Copyright © 2014-2023 PDF Technologies, Inc. All Rights Reserved. /// /// THIS SOURCE CODE AND ANY ACCOMPANYING DOCUMENTATION ARE PROTECTED BY INTERNATIONAL COPYRIGHT LAW /// AND MAY NOT BE RESOLD OR REDISTRIBUTED. USAGE IS BOUND TO THE ComPDFKit LICENSE AGREEMENT. /// UNAUTHORIZED REPRODUCTION OR DISTRIBUTION IS SUBJECT TO CIVIL AND CRIMINAL PENALTIES. /// This notice may not be removed from this file. class SignatureImageUtil { static Future saveByteDataImage(ui.Image? image) async { ByteData? byteData = await image?.toByteData(format: ImageByteFormat.png); final pngBytes = byteData?.buffer.asUint8List(); // 写入文件 final directory = await getApplicationDocumentsDirectory(); Directory folder = Directory('${directory.path}/pdfview/signature/'); folder.createSync(recursive: true); String path = '${folder.path}/signature_image_${DateTime.now().millisecond}.png'; final file = File(path); await file.writeAsBytes(pngBytes!.toList()); return file.existsSync() ? path : null; } static Future> signatureImages() async { final directory = await getApplicationDocumentsDirectory(); String path = '${directory.path}/pdfview/signature/'; final folder = Directory(path); if (!await folder.exists()) { return []; } final fileList = await folder.list().toList(); final files = []; for (final entity in fileList) { if (entity is File) { files.add(SignatureImageBean(File(entity.path), false)); } } return files; } static void delete(List list) async { for (var value in list) { value.file.delete(); } } }