---

title: ImageCapture API:拍照与摄像参数控制

keywords:

  • ImageCapture
  • takePhoto
  • getPhotoCapabilities
  • torch
  • zoom

description: 使用 ImageCapture 从视频轨获取照片并控制摄像参数(闪光灯、变焦等),提升拍照体验与稳定性,含能力探测与回退。

categories:

  • 应用软件
  • 编程开发

---

概述

ImageCapture 允许对 MediaStreamTrack 执行拍照与参数控制(如变焦与闪光灯)。需从摄像头视频轨创建 ImageCapture 实例并检查能力。

用法/示例

const stream = await navigator.mediaDevices.getUserMedia({ video: { facingMode: 'environment' } })
const track = stream.getVideoTracks()[0]
const ic = new ImageCapture(track)
const photo = await ic.takePhoto({ imageHeight: 1080 })
const url = URL.createObjectURL(photo)
// 能力探测与参数设置
const caps = await ic.getPhotoCapabilities()
if (caps.torch) await ic.setOptions({ torch: true })
if (caps.zoom && caps.zoom.min < 2 && caps.zoom.max >= 2) await ic.setOptions({ zoom: 2 })

工程建议

  • 检查能力并提供 UI 控件;在不支持环境回退到 <video> + drawImage 生成帧。
  • 管理 Blob URL 生命周期与释放,避免内存泄漏。
  • 处理权限与设备切换,记录失败原因与用户提示。

参考与验证

  • MDN:ImageCapture — https://developer.mozilla.org/docs/Web/API/ImageCapture
  • web.dev:Image Capture — https://web.dev/articles/image-capture

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部