xul/xpcom将图像从字符串复制到剪贴板
xul/xpcom copy image from string to clipboard
我一直不知道如何将图像复制到剪贴板。我的代码如下:
var image = "data:image/png;base64,..."
var io = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService);
var channel = io.newChannel(image, null, null);
var input = channel.open();
var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);
trans.addDataFlavor("image/png");
trans.setTransferData("image/png", input, input.available());
var clipid = Components.interfaces.nsIClipboard;
var clip = Components.classes["@mozilla.org/widget/clipboard;1"].getService(clipid);
clip.setData(trans, null, clipid.kGlobalClipboard);
正如Neil在新闻组中所指出的,图像所需的数据是nsIContainer
实例,而不是流。我在网上找不到任何这样做的例子,所以我修改了你的代码:
var image = "data:image/png;base64,...";
var io = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService);
var channel = io.newChannel(image, null, null);
var input = channel.open();
var imgTools = Components.classes["@mozilla.org/image/tools;1"].getService(Components.interfaces.imgITools);
var container = {};
imgTools.decodeImageData(input, channel.contentType, container);
var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);
trans.addDataFlavor("image/png");
trans.setTransferData("image/png", container.value, -1);
var clipid = Components.interfaces.nsIClipboard;
var clip = Components.classes["@mozilla.org/widget/clipboard;1"].getService(clipid);
clip.setData(trans, null, clipid.kGlobalClipboard);
对我来说,这将正确地将图像复制到剪贴板。
相关文章:
- 将字符串数组的子字符串复制到Javascript中的新数组中
- 使用 zclip、JavaScript、jQuery 将字符串 var 复制到剪贴板
- 复制和粘贴带有转义引号的字符串化对象时的 JSON.parse 异常
- 为什么AngularJS在我的路由中复制查询字符串
- Javascript-将字符串以text/html的形式复制到剪贴板
- zclip代码复制空白字符串,而不是文本字段的内容
- 如何访问或复制对象的字符串值
- Node.js添加相对路径字符串到数组复制斜杠
- 防止闭包编译器复制字符串
- 在复制时,TinyMCE PowerPaste插件并不总是为图像创建base64字符串
- jQuery.parseJSON不工作,除非复制到一个不同的字符串变量
- 将属性值从一个属性复制到另一个属性中的内部字符串
- 在字符串中只复制SVG的子元素
- 将字符串传递给函数是按值复制还是按引用传递
- 将js对象值作为字符串复制到html中
- xul/xpcom将图像从字符串复制到剪贴板
- 苹果脚本:从文本中复制特定字符串并粘贴到同一页面的另一个位置
- 复制并粘贴字符串后,Javascript JSON.parse无法工作
- 如何复制带有TextFormat信息的HTML选择字符串
- JavaScript和大字符串,是JavaScript使用写时复制