Blob 对象到 JavaScript 中的 base64
Blob object to base64 in JavaScript
我正在尝试实现一个粘贴处理程序以从用户的剪贴板获取图像。我希望它只在谷歌浏览器上运行,我不担心其他浏览器。
这是我在互联网上找到的方法的一部分,我正在尝试对其进行调整。
// Get the items from the clipboard
var items = e.clipboardData.items;
if (items) {
// Loop through all items, looking for any kind of image
for (var i = 0; i < items.length; i++) {
if (items[i].type.indexOf("image") !== -1) {
// We need to represent the image as a file,
var blob = items[i].getAsFile();
// and use a URL or webkitURL (whichever is available to the browser)
// to create a temporary URL to the object
var URLObj = window.URL || window.webkitURL;
var source = URLObj.createObjectURL(blob);
createImage(source);
}
}
}
该方法有效,如果我使用我的"源"作为图像对象的 src,我可以显示图像。问题是谷歌浏览器中的图像源将是这样的:blob:http://localhost:8080/d1328e65-ade2-45b3-a814-107cc2842ef9
我需要将此图像发送到服务器,因此我想将其转换为base64版本。例如:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAArgAAAAjCAIAAADwnO7RAAAKMWlDQ1BJQ0MgUHJvZmlsZQAASImdlndUU9kWh8+9N71QkhCKlNBraFICSA29SJEuKjEJEErAkAAiNkRUcERRkaYIMijggKNDkbEiioUBUbHrBBlE1HFwFBuWSWStGd+8ee/Nm98f935rn73P3Wfvfda6AJD8gwXCTFgJgAyhWBTh58WIjYtnYAcBDPAAA2wA4HCzs0IW+EYCmQJ82IxsmRP4F726DiD5+yrTP4zBAP+flLlZIjEAUJiM5/L42VwZF8k4PVecJbdPyZi2NE3OMErOIlmCMlaTc/IsW3z2mWUPOfMyhDwZy3PO4mXw5Nwn4405Er6MkWAZF+cI+LkyviZjg3RJhkDGb+SxGXxONgAoktwu5nNTZGwtY5IoMoIt43kA4EjJX/DSL1jMzxPLD8XOzFouEiSniBkmXFOGjZMTi+HPz03ni8XM...iCIBWnh+P9w9C+9eMzvhCl1iOElK09ruc2wqGhfH/uKEV30FlJkmRZJklydFuW/FdwhYFCkCBBggQJEuS/gWC4FCRIkCBBggQZlmCgECRIkCBBggQZlmCgECRIkCBBggQZFmzhwoXXWoYgQYIECRIkyHUK5vF4rrUMQYIECRIkSJDrFHLktYOCBAkSJEiQIP/NkLt3777WMgT5thLstwoSJEiQ7zxYsEUhyJWxbdu2u++++1pLESRIkCBBvl6Csx6CBAkSJEiQIMPy3dkMOsg3T7A5KkiQIEG+8wQDhSBXTjBQCBIkSJDvPMGuhyBBggQJEiTIsFwXLQr9H6bOjtYeP2mONbOj2Hut9y6/x+nlJSBCQnXkgG3Brh8Q4lqbOpAmPDqUGShex9lPDlfB4sU5I97b/8kuevygYUgYsAksAPg9fkbDQN/e1kNvVw76nfYeiTCG6sjLd5fv58rsFmxRCBIkSJDvPP8f+HtxbDVRPI8AAAAASUVORK5CYII=
在第一段代码中,我有一个表示文件的 blob 对象。我已经尝试了几种方法,但我没有得到正确的表示。如何使用它来创建 base64 表示形式?
Nick Retallack在本页的回答 剪贴板功能的粘贴图像如何在Gmail和Google Chrome 12+中工作? 做我想要的。
所以新的代码段是:
var items = e.clipboardData.items;
if (items) {
// Loop through all items, looking for any kind of image
for (var i = 0; i < items.length; i++) {
if (items[i].type.indexOf("image") !== -1) {
// We need to represent the image as a file,
var blob = items[i].getAsFile();
var reader = new FileReader();
reader.onload = function(event){
createImage(event.target.result); //event.target.results contains the base64 code to create the image.
};
reader.readAsDataURL(blob);//Convert the blob from clipboard to base64
}
}
}
相关文章:
- base64编码的图像比intranet中的常规图像好吗
- 将Meteor中的base64 PDF作为电子邮件附件
- JavaScript代码,用于在浏览器中显示字节数组中的PDF文件(非base64编码)
- 将Byte数组转换为Angularjs中的Base64字符串
- php中javascript解码中的base64编码
- 图片上传到HTML5中的base64
- 从PhoneGap FileEntry中提取base64编码的数据
- Nodejs或javascript中的Base64到decimal
- Blob 对象到 JavaScript 中的 base64
- 使用表单中的base64作为文件上传
- 如何在internet explorer中从剪贴板中获取base64编码的图像
- 转义URL中的Base64字符串
- 将图像编码为base64并上传到Phonegap中的web服务
- 在原生PDF查看器中打开Base64编码的PDF
- 将base64编码的图像插入iOS版Wikitude SDK中的AR.ImageResource
- Sproutcore 中的 Base64 编码
- VBA 中的 Base64 HMAC SHA1 字符串
- 使用angularJS中的Base64解码对字符串进行解密
- 在客户端使用纯JavaScript裁剪内存中的Base64 PNG,而不使用画布
- 包括其他文件中的base64图像