纯HTML 调用摄像头 获取拍照后的图片的base64

纯HTML 调用摄像头 获取拍照后的图片的base64

直接上代码:

html 复制代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Web USB Camera</title>
</head>
<body>

<video id="video" width="400" autoplay playsinline></video>
<br>
<button id="snap">拍照</button>
<br>
<img id="photo" style="margin-top:10px; width:400px;">
<br>

<!-- ✅ 新增:用于完整显示 Base64 -->
<textarea id="output" style="width:100%;height:200px;margin-top:10px;"></textarea>

<script>
  const video = document.getElementById("video");
  const photo = document.getElementById("photo");
  const snapBtn = document.getElementById("snap");
  const output = document.getElementById("output"); // ✅ 新增引用

  // 获取摄像头
  navigator.mediaDevices.getUserMedia({ video: true })
    .then(stream => {
      video.srcObject = stream;
    })
    .catch(err => {
      alert("无法访问摄像头: " + err);
    });

  // 拍照
  snapBtn.onclick = function() {
    const canvas = document.createElement("canvas");
    canvas.width = video.videoWidth;
    canvas.height = video.videoHeight;

    const ctx = canvas.getContext("2d");
    ctx.drawImage(video, 0, 0);

    photo.src = canvas.toDataURL("image/png");

    // ✅ 新增:完整 Base64 放进 textarea
    output.value = photo.src;

    console.log("Base64 length:", photo.src.length);
  };
</script>

</body>
</html>

效果如下图所示:

可以验证一下base64 是否正常 访问网站:

https://remeins.com/index/app/base64img

相关推荐
郭老二8 小时前
【前端】vue3:编译步骤
前端
不在逃避q9 小时前
Trae/Vs Code/Cursor命令行无法跑npm命令
前端·arcgis·npm
夏殇之殁9 小时前
包中创建自定义列表项。 . 使用自定义列表项进行数据绑定 . 将天气预报数据保存到本地内存表,通过LiveBindings进行显示。 ...
服务器·前端·javascript
The Chosen One98510 小时前
高进度算法模板速记(待完善)
java·前端·算法
陈随易10 小时前
MoonBit抓包模块pcap,查看电脑的每一次联网通信
前端·后端·程序员
新中地GIS开发老师11 小时前
WebGIS开发学生作品|低空航天管理与航线规划系统
前端·javascript·webgis·三维gis开发
用户0595401744611 小时前
大模型对话记忆持久化踩坑实录:用 Playwright 自动化测了 300 次,终于揪出会话丢失的真凶
前端·css
丙氨酸長鏈11 小时前
Web前端入门第 问:JavaScript 一个简单的 IndexedDB 数据库入门示例
前端·javascript·数据库
kyriewen12 小时前
面试官让我手写虚拟列表——AI生成的版本,快速滚动几下就白屏了
前端·javascript·面试
IT_陈寒12 小时前
Vite热更新失效?你可能漏了这个配置
前端·人工智能·后端