Add image copy functionality.

Currently only supports Windows.
Close #260
This commit is contained in:
2025-03-26 22:50:00 +08:00
parent dee8d17b1e
commit d812332613
7 changed files with 151 additions and 2 deletions

View File

@@ -0,0 +1,22 @@
import 'dart:io';
import 'dart:ui';
import 'package:flutter/services.dart';
Future<void> writeImageToClipboard(Uint8List imageBytes) async {
const channel = MethodChannel("venera/clipboard");
if (Platform.isWindows) {
var image = await instantiateImageCodec(imageBytes);
var frame = await image.getNextFrame();
var data = await frame.image.toByteData(format: ImageByteFormat.rawRgba);
await channel.invokeMethod("writeImageToClipboard", {
"width": frame.image.width,
"height": frame.image.height,
"data": Uint8List.view(data!.buffer)
});
image.dispose();
} else {
// TODO: Implement for other platforms
throw UnsupportedError("Clipboard image is not supported on this platform");
}
}