This commit is contained in:
2023-09-07 19:48:27 +08:00
parent 01764d005f
commit 1af4ed6313
3 changed files with 91 additions and 24 deletions

32
lib/utils/clipboard.dart Normal file
View File

@@ -0,0 +1,32 @@
import 'package:flutter/foundation.dart';
import 'package:super_clipboard/super_clipboard.dart';
import '../platform/to_png_none.dart'
if (dart.library.html) '../platform/to_png.dart';
enum ImageFmt {
jpg,
png,
gif,
}
Future<void> copyImageToClipboard(Uint8List data, ImageFmt fmt) async {
final item = DataWriterItem();
if (!kIsWeb) {
item.add(fmt == ImageFmt.jpg
? Formats.jpeg(data)
: fmt == ImageFmt.gif
? Formats.gif(data)
: Formats.png(data));
} else {
item.add(fmt == ImageFmt.gif
? Formats.gif(data)
: Formats.png(fmt == ImageFmt.jpg ? await jpgToPng(data) : data));
}
await ClipboardWriter.instance.write([item]);
}
Future<void> copyTextToClipboard(String text) async {
final item = DataWriterItem();
item.add(Formats.plainText(text));
await ClipboardWriter.instance.write([item]);
}