当前位置:首页 > JavaScript

js 实现拍照

2026-02-02 06:47:32JavaScript

使用WebRTC API实现拍照功能

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

关键代码示例:

js 实现拍照

// 获取视频流并显示在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属性直接调用摄像头。

示例代码:

js 实现拍照

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

第三方库支持(如React)

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

安装与示例:

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、CSS和JavaScript创建一个简单的轮播效果。HTML部分定义轮播容器和图片元素。 <div class="carousel"> <div c…

js 实现超链接

js 实现超链接

使用 HTML 的 <a> 标签 在 JavaScript 中动态创建超链接可以通过操作 DOM 实现。通过 document.createElement 创建一个 <a> 元…

js实现div隐藏

js实现div隐藏

使用CSS的display属性隐藏div 通过设置元素的display属性为none,可以完全隐藏div元素。这种方法不仅隐藏元素,还会从文档流中移除,不占据页面空间。 document.getEl…

js实现点击隐藏

js实现点击隐藏

使用CSS类切换实现点击隐藏 通过添加或移除CSS类来控制元素的显示与隐藏。定义一个隐藏样式类如.hidden { display: none; },通过事件监听切换该类。 document.que…

vue.js实现app

vue.js实现app

Vue.js 实现 App 的方法 Vue.js 可以用于开发移动端 App,主要通过以下两种方式实现: 使用 Capacitor 或 Cordova 进行混合开发 Capacitor 和 Cor…

vue.js实现新增

vue.js实现新增

Vue.js 实现新增功能的方法 在 Vue.js 中实现新增功能通常涉及表单处理、数据绑定和事件触发。以下是几种常见的实现方式: 表单绑定与提交 使用 v-model 双向绑定表单数据,通过 @…