3
我使用Dart开发个人白板Chrome应用程序,它有时可以快速复制和粘贴图像(例如演示文稿,图表或演示文稿中的幻灯片),以便我可以添加笔记在教课或演讲时的形象。如何使用Dart将剪贴板中的图像粘贴到Canvas元素上?
如何将存储在剪贴板上的图像粘贴到Dart中的画布元素上?
我使用Dart开发个人白板Chrome应用程序,它有时可以快速复制和粘贴图像(例如演示文稿,图表或演示文稿中的幻灯片),以便我可以添加笔记在教课或演讲时的形象。如何使用Dart将剪贴板中的图像粘贴到Canvas元素上?
如何将存储在剪贴板上的图像粘贴到Dart中的画布元素上?
实际上,this answer to the same question for JS几乎直接适用。飞镖翻译可能看起来像:
import 'dart:html';
void main() {
var can = new CanvasElement()
..width = 600
..height = 600
;
var con = can.getContext('2d');
document.onPaste.listen((e) {
var blob = e.clipboardData.items[0].getAsFile();
var reader = new FileReader();
reader.onLoad.listen((e) {
var img = new ImageElement()
..src = (e.target as FileReader).result;
img.onLoad.listen((_) {
con.drawImage(img, 0, 0);
});
});
reader.readAsDataUrl(blob);
});
document.body.children.add(can);
}
在DART的最新版本(0.7.3_r27487),此代码不能正常工作......看来这个项目(_)方法已经从DataTransferItemList删除类... –
我无法设法生成粘贴事件。我尝试了一个断点,但它并没有停止,所以我想我错过了一些东西。 – maugch
更新:从Dart 1.1.1开始,DataTransferItemList类更类似于其他列表 - 而不是使用e.clipboardData.items.item(index),我们可以简单地使用e.clipBoardData.items [index](这更有意义);编辑上述代码以反映这一变化并且正在工作。 –