当前位置:首页 > JavaScript

js 实现拍照

2026-02-02 06:47:32JavaScript

使用WebRTC API实现拍照功能

通过浏览器的getUserMedia API调用摄像头,结合canvas捕获图像。

关键代码示例:

// 获取视频流并显示在video元素中
navigator.mediaDevices.getUserMedia({ video: true })
  .then(stream => {
    const video = document.getElementById('video');
    video.srcObject = stream;
  })
  .catch(err => console.error('摄像头访问失败:', err));

// 拍照并转换为图片
function capturePhoto() {
  const video = document.getElementById('video');
  const canvas = document.getElementById('canvas');
  const context = canvas.getContext('2d');
  canvas.width = video.videoWidth;
  canvas.height = video.videoHeight;
  context.drawImage(video, 0, 0, canvas.width, canvas.height);
  const photoData = canvas.toDataURL('image/png'); // 获取Base64图片数据
}

使用HTML5的capture属性(移动端)

移动设备可通过<input type="file">capture属性直接调用摄像头。

示例代码:

<input type="file" accept="image/*" capture="camera">

第三方库支持(如React)

使用现成库简化流程,例如react-webcam

安装与示例:

js 实现拍照

npm install react-webcam
import Webcam from 'react-webcam';
const videoConstraints = { facingMode: 'user' };

function App() {
  const webcamRef = React.useRef(null);
  const capture = () => {
    const imageSrc = webcamRef.current.getScreenshot();
  };
  return <Webcam ref={webcamRef} videoConstraints={videoConstraints} />;
}

注意事项

  • 权限问题:需确保用户授权摄像头访问。
  • 兼容性getUserMedia在HTTPS或localhost下生效,部分旧浏览器需前缀(如webkitGetUserMedia)。
  • 移动端适配:不同设备对capture属性的支持可能不一致,需测试验证。

标签: js
分享给朋友:

相关文章

js实现图片上传

js实现图片上传

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现图片上传功能。HTML部分需要创建一个文件选择输入框和一个用于…

js实现pdf在线预览

js实现pdf在线预览

使用PDF.js实现PDF在线预览 PDF.js是由Mozilla开发的一个开源JavaScript库,可以在网页中直接渲染PDF文件。以下是实现PDF在线预览的步骤: 引入PDF.js库 在HT…

js实现正交

js实现正交

正交的概念 正交在数学和计算机科学中通常指两个向量垂直或线性无关。在编程中,正交性常被用于设计模块化、低耦合的系统。 向量正交判断 判断两个向量是否正交可以通过点积是否为0来实现: functio…

js实现图片移动

js实现图片移动

使用CSS和JavaScript实现图片移动 方法一:使用CSS动画结合JavaScript控制 通过CSS定义动画关键帧,JavaScript动态添加或移除动画类。 /* CSS部分 */ .m…

vue js实现弹窗

vue js实现弹窗

Vue.js 实现弹窗的方法 使用组件实现弹窗 创建一个独立的弹窗组件,例如 Modal.vue,包含弹窗的 HTML 结构和样式。在组件中定义 props 控制弹窗的显示与隐藏。 <temp…

vue.js实现改

vue.js实现改

Vue.js 实现修改功能 在 Vue.js 中实现修改功能通常涉及以下几个关键步骤: 数据绑定与表单处理 使用 v-model 实现表单数据与 Vue 实例数据的双向绑定。例如修改用户信息时,表单…