HTML5 / Javascript - DataURL 到 Blob 和 Blob 到 DataURL

2024-02-28

我有一个来自画布的 DataURL,显示了我的网络摄像头。我使用 Matt 的答案将此 dataURL 转换为 blob:如何在javascript中将dataURL转换为文件对象? https://stackoverflow.com/questions/6850276/how-to-convert-dataurl-to-file-object-in-javascript

如何将此 blob 转换回相同的 DataURL?我花了一天的时间研究这个,我很惊讶这个没有更好的记录,除非我是盲人。

编辑: 有

var urlCreator = window.URL || window.webkitURL; 
var imageUrl = urlCreator.createObjectURL(blob); 

但它只返回一个非常短的 URL,似乎指向本地文件,但我需要通过网络发送网络摄像头数据。


使用我的代码在 JavaScript 中的 dataURL 和 blob 对象之间进行转换。 (比您链接中的代码更好。)

//**dataURL to blob**
function dataURLtoBlob(dataurl) {
    var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
        bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
    while(n--){
        u8arr[n] = bstr.charCodeAt(n);
    }
    return new Blob([u8arr], {type:mime});
}

//**blob to dataURL**
function blobToDataURL(blob, callback) {
    var a = new FileReader();
    a.onload = function(e) {callback(e.target.result);}
    a.readAsDataURL(blob);
}

//test:
var blob = dataURLtoBlob('data:text/plain;base64,YWFhYWFhYQ==');
blobToDataURL(blob, function(dataurl){
    console.log(dataurl);
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HTML5 / Javascript - DataURL 到 Blob 和 Blob 到 DataURL 的相关文章

随机推荐

  • 试图阻止 jQuery Mobile 滑动手势冒泡,但它不起作用

    我正在使用 jQuery Mobile 并创建了一些类似于 Android Holo Tabs 的东西 http note io 18RNMRk http note io 18RNMRk 为了使滑动手势能够在选项卡之间切换 这是我添加的代码
  • 设置 MimeMessage 的内容类型?

    我对哑剧消息的内容类型有一个困惑 假设我有一条哑剧消息 这是一条多部分消息 正文部分如下 Mime 正文部分包含纯文本 html 文本 如中的一些字母 正文加粗 第二个哑剧身体部分包含附件 第三个哑剧正文部分包含一张内联图像 通过 cid
  • 使用图表构建交易平台 - 对 Python GUI 库的建议

    我正在构建一个小程序来从市场检索数据并实时绘制图表 虽然交易决策将在很大程度上自动化 但图表会不断更新 以便有人可以跟踪决策的制定方式 并在必要时进行手动干预 对于该任务 对于 Python 来说 什么是一个好的 GUI 库 以下是考虑因素
  • 在 Selenium 中使用无头 Chrome 设置用户数据目录 [重复]

    这个问题在这里已经有答案了 我试图让无头 Chrome 工作 同时使用以下命令设置用户数据目录 from selenium import webdriver options webdriver ChromeOptions options a
  • 简单的“数组中的最大值”和复杂性计算

    我对这些东西还很陌生 我需要你的帮助 我应该构建一个高效的简单算法 该算法返回大小为 n 的数组中的最大值 其中包含重复的数字 1 2 n 然后我必须确定最佳运行时间 平均运行时间和最差运行时间 所以我有两个问题 首先 我试图理解这个简单算
  • 在 Android 中设置 TextView 从另一个线程或 BeginInvoke 可见

    我正在开发一个 Android 2 2 应用程序 我在活动上有一个事件侦听器 并且我想在收到事件时设置可见的 TextView 但有一个错误 我只能将其设置为从 UI 线程可见 在 C 和 Windows Mobile 中 有一个 Begi
  • 使用 javascript 从 itemprop 读取值

    是否可以使用 javascript 读取价格 span span 178 00 span span 我只想定价 178 00 我只能使用javascript 任何建议将不胜感激 如果您有产品元素product并且您使用的是现代浏览器 这应该
  • 当我按下 return/enter 键时,h:inputText 可以调用托管 bean 内的方法吗

    所以我有一个inputText有它的价值挂钩myBean text 我希望如果我单击 Enter Return 键 inputText 将调用内部的方法myBean做某事 谁能帮我 根据您的问题历史记录 我知道您正在使用 JSF 2 0 因
  • 如何使用 Gradle Bulid Tool 解决依赖关系并编译 Junit 测试类

    我是 Gradle 新手 目前我添加了一个小型 java 项目并且执行得很好 如果我的理解是正确的 请纠正我 因为 java 可用 我们能够编译 java 项目并执行得很好 为了测试 我在 junit 的帮助下编写了一个测试类 但我无法编译
  • 将控制字符应用于字符串 - Python

    我正在尝试将控制字符 例如应删除前面的字符的 x08 x08 应用于字符串 向后移动 写入空格 向后移动 例如 当我输入 python 控制台时 s test x08 x08 print s print repr s 我进入我的终端 tes
  • 如何将 git status 限制为仅当前目录中的常规文件?

    我想查看当前目录的状态 因为子目录有很多变化 我就是这么做的not我想看看 下面的命令并不能解决问题 git status 有没有办法获得这种报告 除了 grep 的输出之外git status Use git status
  • 如何在 WSGI 处理程序中捕获“[Errno 32] 管道损坏”

    WSGI 对于构建高度并发的 HTTP 服务器以支持例如然而 长轮询通常会在某个时刻被客户端结束长时间运行的 HTTP 请求 要清理任何资源并打开句柄 应该向 WSGI 服务器后端通知任何此类事件 但是 目前似乎无法在 WSGI 处理程序中
  • 将整体 bar 和 perc 标签添加到 geom_bar

    我正在寻找以下问题的解决方案 我有包含两个因子变量的数据EDU and LEVEL 可重现的数据样本在这里 structure list EDU structure c 3L 1L 2L 2L 3L 2L 3L 2L 3L 1L 1L 1L
  • Conda - 无法完全删除环境

    我使用的是 Windows 10 所有命令都以管理员身份运行 我创建了一个名为 myenv 的环境 然后我用了 conda env 删除 n myenv 现在 如果我尝试 康达信息 envs 我只看到基础环境 但是 如果我尝试 conda
  • BigQuery/以太坊数据集 - 如何编写代码

    对于以太坊数据集 如果我知道特定合约的上个月交易 任何人都可以告诉我应该如何在 BigQuery 中编写 例如 如果我想知道合约地址 0x41dbecc1cdc5517c6f76f6a6e836adbee2754de3 上个月进行了多少笔交
  • 如何使用 qt5(QtQuick 2.1) 及更高版本在窗口上打印度数符号

    当我使用 qt4 8 qt fast 1 1 进行 gui 时 我可以成功地打印学位 260但是当升级到 qt5 及更高版本时 它就停止工作了 我在网上搜索 发现了很多相关链接 例如 http www fileformat info inf
  • TOD 时钟时间为 java.util.Date 或毫秒

    我有一个数据库表 其中填充了通过 ETL 来自大型机的数据 该表的一列称为 TOD 如 Time Of Day 中的 TOD 该列存储诸如以下的值 CAE7631DC43DC686 CAE7631C4AC6DC0B CAE6216DF2BC
  • 如何通过 JDBC 使用 Windows 密钥库 (MCS)?

    我正在尝试创建一个使用java应用程序PKI用于身份验证 我需要能够从 Microsoft 证书存储 MCS 检索证书并将其传递到 Oracle 数据库 11 2 我正在使用jdbc oracle thin司机 在谷歌上花了相当长的时间后
  • 有没有办法拆分/分解 Gradle 构建的公共部分

    我们有几个独立的构建 每个独立构建都是一个多项目构建 主要构建脚本变得相当大 因为我们有一组由子项目重用的常见任务 独立构建之间也存在大量重复 我们正在寻找的是 一种分割主构建文件的方法 分成较小的文件 重用某些部分的方法 在其他独立构建中
  • HTML5 / Javascript - DataURL 到 Blob 和 Blob 到 DataURL

    我有一个来自画布的 DataURL 显示了我的网络摄像头 我使用 Matt 的答案将此 dataURL 转换为 blob 如何在javascript中将dataURL转换为文件对象 https stackoverflow com quest