mirror of
https://github.com/lifegpc/eh_downloader_flutter.git
synced 2026-06-08 06:48:56 +08:00
49 lines
1.2 KiB
Dart
49 lines
1.2 KiB
Dart
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';
|
|
import '../globals.dart';
|
|
import '../utils.dart';
|
|
|
|
enum ImageFmt {
|
|
jpg,
|
|
png,
|
|
gif;
|
|
|
|
String toMimeType() {
|
|
switch (this) {
|
|
case ImageFmt.jpg:
|
|
return "image/jpeg";
|
|
case ImageFmt.png:
|
|
return "image/png";
|
|
case ImageFmt.gif:
|
|
return "image/gif";
|
|
}
|
|
}
|
|
}
|
|
|
|
Future<void> copyImageToClipboard(Uint8List data, ImageFmt fmt) async {
|
|
if (isAndroid) {
|
|
return await platformClipboard.copyImageToClipboard(fmt.toMimeType(), data);
|
|
}
|
|
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 SystemClipboard.instance!.write([item]);
|
|
}
|
|
|
|
Future<void> copyTextToClipboard(String text) async {
|
|
final item = DataWriterItem();
|
|
item.add(Formats.plainText(text));
|
|
await SystemClipboard.instance!.write([item]);
|
|
}
|