View in English

  • Apple 开发者
    • 入门汇总

    探索“入门汇总”

    • 概览
    • 学习
    • Apple Developer Program

    及时了解最新动态

    • 最新动态
    • 开发者你好
    • 平台

    探索“平台”

    • Apple 平台
    • iOS
    • iPadOS
    • macOS
    • Apple tvOS
    • visionOS
    • watchOS
    • App Store

    精选

    • 设计
    • 分发
    • 游戏
    • 配件
    • 网页
    • Home
    • CarPlay 车载
    • 技术

    探索“技术”

    • 概览
    • Xcode
    • Swift
    • SwiftUI

    精选

    • 辅助功能
    • App Intents
    • Apple 智能
    • 游戏
    • 机器学习与 AI
    • 安全性
    • Xcode Cloud
    • 社区

    探索“社区”

    • 概览
    • “与 Apple 会面交流”活动
    • 社区主导的活动
    • 开发者论坛
    • 开源

    精选

    • WWDC
    • Swift Student Challenge
    • 开发者故事
    • App Store 大奖
    • Apple 设计大奖
    • Apple Developer Centers
    • 文档

    探索“文档”

    • 文档库
    • 技术概述
    • 示例代码
    • 《人机界面指南》
    • 视频

    发布说明

    • 精选更新
    • iOS
    • iPadOS
    • macOS
    • watchOS
    • visionOS
    • Apple tvOS
    • Xcode
    • 下载

    探索“下载”

    • 所有下载
    • 操作系统
    • 应用程序
    • 设计资源

    精选

    • Xcode
    • TestFlight
    • 字体
    • SF Symbols
    • Icon Composer
    • 支持

    探索“支持”

    • 概览
    • 帮助指南
    • 开发者论坛
    • “反馈助理”
    • 联系我们

    精选

    • 《开发者账户帮助》
    • 《App 审核指南》
    • 《App Store Connect 帮助》
    • 即将实行的要求
    • 协议和准则
    • 系统状态
  • 快速链接

    • 活动
    • 新闻
    • 论坛
    • 示例代码
    • 视频
 

视频

打开菜单 关闭菜单
  • 专题
  • 所有视频
  • 关于

更多视频

  • 简介
  • 概要
  • 转写文稿
  • 代码
  • 实现高分辨率照片拍摄

    借助 AVFoundation,使用你的 App 拍摄超高分辨率照片。了解三种不同的拍照选项:RAW、分段曝光和完全处理,以及各个选项的适用场景。详细探索如何配置主摄像头、长焦摄像头以及超广角摄像头,实现 2400 万像素和 4800 万像素照片拍摄。此外,了解延迟照片处理如何让你的 App 在拍摄更多照片时也能保持响应灵敏。

    章节

    • 0:00 - Introduction
    • 0:52 - High-resolution photos
    • 4:07 - Types of captures
    • 5:20 - Configure a capture session
    • 9:41 - Responsive capture best practices

    资源

    • Capturing photos in RAW and Apple ProRAW formats
    • AVCam: Building a camera app
      • 高清视频
      • 标清视频

    相关视频

    WWDC26

    • 构建灵敏还秒开的相机 App
    • 让你的 iOS App 支持 Center Stage 前置摄像头

    WWDC23

    • 打造更流畅的相机体验

    WWDC21

    • 使用视频格式拍摄高质量照片
    • 拍摄和处理 ProRAW 图像
  • 搜索此视频…

    你好 我是Mohit Setia 我是Camera Software团队的工程师 欢迎收看 "实现高分辨率照片拍摄" 相机硬件的进步 和计算摄影的发展 使高分辨率拍摄成为可能 但要充分发挥这种画质的优势 就需要权衡各种因素 尤其是处理时间 与最终图像质量之间的权衡 我将介绍高质量照片处理 以及如何在你的App中 管理这些权衡 首先 我将介绍不同类型 的高分辨率照片

    然后 介绍如何配置和拍摄 最后 我将讨论如何让你的App 在整个过程中保持响应 首先介绍高分辨率照片 预览流提供 屏幕分辨率的图像 适合显示相机的画面 但在摄影场景中 需要 更高的细节和低噪点

    此外 照片裁剪时 也需要高分辨率图像 放大细节或图像分析也是如此 高分辨率拍摄正是为了解决这一问题 下面来介绍它们的定义 高分辨率照片 — 通常为1200万像素 以比预览流更高的分辨率拍摄场景

    2400万和4800万像素 更进一步 相机以更高的分辨率进行拍摄 这意味着更多的细节和清晰度 从iPhone 14 Pro 和iPhone 14 Pro Max开始 相机系统搭载了 4800万像素Quad传感器 四像素传感器设计 允许以全分辨率拍摄照片 呈现最高级别的细节 或将同色像素以2×2分组 以捕获更多光线 这是在iPhone上拍摄的 一张4800万像素照片 照片展现了壮阔的海岸景观 悬崖 沙滩和延伸至天际的海洋 分辨率是标准照片的四倍 由传感器的单帧拍摄而成 注意海岸100%裁剪下 细小的岩石 细节清晰可见 令人叹为观止 以及山体侧面复杂的纹理 这就是4800万像素的魅力所在 更多细节 更高清晰度 更多可探索的内容 从iPhone 15开始 相机支持2400万像素照片 2400万像素照片拍摄 由多个步骤组成 首先 相机使用Quad传感器上 的合并像素 生成1200万像素的 多帧融合高动态范围图像 然后 名为Photonic Engine的 计算图像处理管线 将其与高分辨率 4800万像素图像融合 以全传感器分辨率拍摄 获取丰富细节

    最终生成质量出色 的2400万像素图像 分辨率是1200万像素图像的两倍 文件大小仅增加约50% 兼顾了光线和细节 同时保持文件大小 便于存储和分享 从iPhone 15开始 相机App 默认使用此拍摄模式 2400万和4800万像素 拍摄支持已扩展 至iPhone 16 Pro的长焦相机 以及iPhone 17的超广角相机 以上就是各款iPhone相机 支持的高分辨率照片类型 了解了iPhone上可用的 高分辨率照片类型后 下面介绍你可以在App中 请求的高分辨率拍摄类型 首先是最常见的情况 — 完全处理后的照片 这是一张多帧融合图像 它经过Photonic Engine处理 以扩展动态范围 并提升细节表现

    第二是曝光包围 同一场景的 多张不同曝光帧 适用于创建 高动态范围照片拍摄 以及需要从多重曝光中 进行选择的场景 第三是Bayer RAW照片 RAW格式直接从传感器 获取最少处理的数据 非常适合后期处理 和编辑场景 第四是Apple的ProRAW ProRAW将RAW的灵活性 与iPhone的图像处理相结合 在编辑曝光 颜色和细节时 提供更大的灵活性 了解更多关于RAW格式的信息 请观看WWDC21的 《Capture and process ProRAW images》 接下来 我将介绍 如何配置拍摄会话 以实现高分辨率照片拍摄 我将从创建AVCaptureSession开始 然后配置会话

    注意 — 只有照片预设支持 2400万和4800万像素照片 其他预设不支持此功能 接下来 我将为App 选择合适的优先级设置 速度优先拍摄最快 处理量最少 平衡优先提供 中等速度和良好质量 质量优先耗时最长 但画质最佳 更多详情请参阅 WWDC21的 《Capture High-Quality Photos Using Video Formats》 在配置AVCapturePhotoOutput时 我将设置maxPhotoQualityPrioritization 设为quality 以演示高分辨率拍摄 这会告知会话 为所有三个优先级准备资源 速度 平衡和质量 某些高分辨率选项是否可用 取决于此设置 稍后在本视频中 会详细介绍 接下来 我将选择本次会话 中请求的最大尺寸

    从iOS 16开始 你可以查看 支持的最大照片尺寸 在设备的活跃格式上查看 supportedMaxPhotoDimensions列出了 当前格式下所有 可能的照片尺寸 这里 我选择最大可用尺寸 以作演示 但你应根据自己的用例 选择合适的尺寸

    在提交会话配置前 完成照片输出的配置

    提交后更改这些设置 会触发耗时较长的管线重新配置

    准备好拍摄时 设置maxPhotoDimensions 和photoQualityPrioritization 在AVCapturePhotoSettings中 配置当前拍摄 然后设置代理以拍摄照片 设置maxPhotoDimensions 是一种请求 而非保证 系统会考虑光线水平 场景和可用的处理资源 并选择最优路径 实际尺寸通过AVCaptureResolvedSettings 返回给你的代理 它还会在拍摄完成时 通知代理 你可以在每次拍摄时 自定义质量优先级和maxPhotoDimensions 这意味着你可以 支持多种质量级别 以及同一会话中的不同尺寸 无需在拍摄之间 进行耗时的重新配置 高分辨率拍摄需要 基于以下条件分配特定资源 photoQualityPrioritization 和maxPhotoDimensions 如果系统尚未 预分配这些资源 分配将在拍摄时发生 — 这可能会降低速度 为避免速度降低 请使用 setPreparedPhotoSettingsArray方法 在AVCapturePhotoOutput上 告知计划的拍摄方式

    例如 如果App具有 4800万像素模式 在激活该模式后立即 调用setPreparedPhotoSettingsArray 确保拍摄前 资源已就绪 以下是实现方法 尽早创建 prepareSettings对象

    设置适当的maxPhotoDimensions 和photoQualityPrioritization

    然后调用setPreparedPhotoSettingsArray 之后 准备好拍摄时 创建与prepareSettings配置 匹配的新captureSettings对象

    请注意 你不能 复用prepareSettings对象 进行实际拍摄

    创建新设置对象 但确保其配置匹配 以便拍摄与 预分配的资源对齐 拍摄高分辨率照片 需要处理大量像素

    此处理可能需要几秒钟 下面提供一些最佳实践 以确保 App在此过程中 保持快速响应 照片请求后 首先进入拍摄阶段 然后进入处理阶段 AVCapturePhotoCaptureDelegate 在整个过程中接收通知 例如 didCapturePhotoFor resolvedSettings 以及didFinishCaptureFor resolvedSettings 在处理过程中 让App保持最新状态 处理时间因所选择的 照片质量优先级而有所不同 质量优先的照片 以最佳图像呈现 通过更长的处理时间实现 平衡优先的照片 提供最优质量 在常见情况下 以适当的处理时间完成 速度优先的照片是 获取拍摄结果的最快方式 但缺少长时间处理 带来的画质提升

    在所有三个优先级下 均可拍摄1200万像素照片

    4800万像素图像 因为仅为单帧如前所述 可在平衡或质量优先下使用 1800万和2400万像素 是多帧融合图像 处理时间更长 只有质量优先才支持 此表中的1800万像素 仅适用于iPhone 17上 的Center Stage前置相机 了解更多关于 Center Stage前置相机 请参阅 WWDC26的 《Support Center Stage front camera in your iOS app》 AVCaptureResolvedSettings具有 photoProcessingTimeRange属性 它告诉你照片传递到代理 前的预计等待时间 只有上一张照片处理完成后 才能拍摄下一张 两次拍摄之间的延迟 称为连拍延迟 在AVCapturePhotoOutput上 启用响应式拍摄 允许重叠拍摄 上一张照片的拍摄阶段完成后 即可开始新的拍摄 无需等待处理完成 观察AVCapturePhotoOutput上 的captureReadiness属性 以了解下一张照片 何时可以拍摄 这可减少第二张照片 的连拍延迟 帮助你不错过每一个精彩瞬间 但请注意 每张照片的 处理时间与之前相同 为进一步减少 高质量拍摄的连拍延迟 请采用延迟照片处理 启用延迟处理后 系统在拍摄后立即提供 经过轻量处理的代理照片 你通过 didFinishCapturingDeferredPhotoProxy 代理回调接收它 最终照片处理 以两种方式之一进行 按需 当你通过照片库 请求最终照片时 或在后台 当系统判断 条件适宜时 例如设备处于空闲状态 请观看WWDC23的 《Create a More Responsive Camera Experience》 深入了解延迟照片处理 启用延迟照片处理 可显著提升响应速度 减少阻塞下一次拍摄 的处理时间

    这进一步减少了 所有后续照片的连拍延迟

    你现在可以在更短的时间内 拍摄更多高质量照片

    采用此方法后 处理阶段所花时间大幅缩短 而拍摄阶段保持不变 延迟处理让系统可以 花更长时间处理照片 同时不阻塞下一次拍摄 由于这项工作在后台进行 不会与拍摄会话共享内存 这使得多帧融合拍摄成为可能 例如1800万和2400万像素

    为进一步优先考虑响应速度 请开启AVCapturePhotoOutput上 的快速拍摄优先属性 当你开启photoOutput上 的快速拍摄优先时 系统会检测到 连续快速拍摄的情况

    然后将照片质量 从最高质量设置 调整为平衡质量设置 因此在照片拍摄时间线上 当有人请求快速拍摄时 系统会动态将 照片质量优先级调整为平衡 平衡拍摄在拍摄和处理上 所需时间更少

    结果是在快速拍摄时 获得速度提升 从iOS 27开始 在iPhone 16和iPhone 17上 系统还会稍后使用 延迟处理来处理平衡快速拍摄 这进一步减少了处理时间 带来更长时间的 更快拍摄体验 为了说明这一点 我正在报道 Camera团队成员的一场激烈球赛 屏幕上是一个 精彩赛事展开的篮球场 首先 在没有延迟处理的情况下开始 响应式快门或快速拍摄优先 注意我尝试拍摄 篮球投篮时的拍摄按钮

    它在处理照片时 持续旋转 导致我无法继续拍摄 最终我只拍到一张投篮照片 但我可以做得更好 捕捉我想要的瞬间 使用API来管理响应速度

    我为下一次拍摄启用了延迟处理 响应式快门和快速拍摄

    这次拍摄按钮 保持响应 同时我捕捉到了最佳瞬间

    当我按下拍摄按钮时 AVCaptureSession开始 以质量优先拍摄照片 但随着我继续拍摄 它检测到快速拍摄 并智能切换至平衡拍摄

    差异显而易见 一次受阻拍摄 对比 同一瞬间的五张响应式拍摄 这带来了更出色的 响应式拍摄体验 在本视频中 我分享了 构建响应式照片拍摄App的最佳实践 以最高质量和分辨率拍摄照片 如果你正在构建照片拍摄App 请确定所需的分辨率 2400万和4800万像素 等更高分辨率 为用户提供更多细节 以裁剪 缩放和探索 但需要更多内存 和处理时间 选择适合你需求 的质量优先级 速度 平衡和质量各自 在传递时间和图像质量之间取舍 将级别与App的需求匹配 如果你需要 最高质量的拍摄 请开启延迟处理 和响应式拍摄 没有它们 每张照片都会阻塞下一张 用户可能会错过 无法挽回的精彩瞬间 要进一步优化你的相机App 请观看 WWDC26的 《Build a responsive camera app that launches quickly》 构建一个在需要时 足够快速的相机体验 在关键时刻 对画质毫不妥协 感谢观看

    • 5:26 - Configure the AVCaptureSession

      import AVFoundation
      
      private let session = AVCaptureSession()
      private func configureSession() {
          session.beginConfiguration()
          session.sessionPreset = .photo
      }
    • 6:11 - Configure AVCapturePhotoOutput

      import AVFoundation
      
      private let photoOutput = AVCapturePhotoOutput()
      private let configurePhotoOutput: () -> Void = {
          photoOutput.maxPhotoQualityPrioritization = .quality // or .balanced
      }
    • 6:38 - Add maxPhotoDimensions to AVCapturePhotoOutput

      import AVFoundation
      
      let supportedMaxPhotoDimensions = device?.activeFormat.supportedMaxPhotoDimensions ?? []
      if let largestDimension = supportedMaxPhotoDimensions.max(by: { lhs, rhs in
          Int(lhs.width) * Int(lhs.height) < Int(rhs.width) * Int(rhs.height)
      } ) {
          photoOutput?.maxPhotoDimensions = largestDimension
      }
      
      session?.commitConfiguration()
      session?.startRunning()
    • 7:21 - Update AVCapturePhotoSettings

      import AVFoundation
      
      let settings = AVCapturePhotoSettings()
      settings.maxPhotoDimensions = dimension.cmVideoDimensionsValue
      settings.photoQualityPrioritization = .quality
      
      var delegate: AVCapturePhotoCaptureDelegate?
      
      // Configure photo request delegate
      
      if let delegate {
       photoOutput?.capturePhoto(with: settings, delegate: delegate)
      }
    • 8:59 - Prepare resources for the capture

      import AVFoundation
      
      let prepareSettings = AVCapturePhotoSettings()
      prepareSettings.maxPhotoDimensions = photoOutput.maxPhotoDimensions
      prepareSettings.photoQualityPrioritization = .quality
      
      photoOutput.setPreparedPhotoSettingsArray([prepareSettings]) { prepared, error in
        if let error = error {
          print("Failed to prepare: \(error)")
            return
        }
        print("Pipeline prepared: \(prepared)")
      }
      
      // Later, when ready to capture — create NEW settings
      let captureSettings = AVCapturePhotoSettings()
      captureSettings.maxPhotoDimensions = photoOutput.maxPhotoDimensions
      captureSettings.photoQualityPrioritization = quality
      photoOutput.capturePhoto(with: captureSettings, delegate: self)
    • 0:00 - Introduction
    • The tradeoffs high-resolution photo capture requires — particularly between processing time and image quality — and what the session covers: photo types, configuring and capturing them, and keeping your app responsive.

    • 0:52 - High-resolution photos
    • Explore the different photo resolutions available across iPhone cameras, including 12MP, 24MP, and 48MP, and how the photonic engine balances light and detail.

    • 4:07 - Types of captures
    • Learn about the four types of high resolution captures you can request: fully processed photos, exposure brackets, Bayer RAW, and Apple ProRAW.

    • 5:20 - Configure a capture session
    • An overview of AVCaptureSession setup for high resolution photos. Learn how to select quality prioritization, configure maximum photo dimensions, and preallocate resources.

    • 9:41 - Responsive capture best practices
    • Keep your app fast and responsive by implementing overlapping captures, deferred photo processing, and fast capture prioritization to minimize shot-to-shot delay.

Developer Footer

  • 视频
  • WWDC26
  • 实现高分辨率照片拍摄
  • 打开菜单 关闭菜单
    • iOS
    • iPadOS
    • macOS
    • Apple tvOS
    • visionOS
    • watchOS
    打开菜单 关闭菜单
    • Swift
    • SwiftUI
    • Swift Playground
    • TestFlight
    • Xcode
    • Xcode Cloud
    • SF Symbols
    打开菜单 关闭菜单
    • 辅助功能
    • 配件
    • Apple 智能
    • App 扩展
    • App Store
    • 音频与视频 (英文)
    • 增强现实
    • 设计
    • 分发
    • 教育
    • 字体 (英文)
    • 游戏
    • 健康与健身
    • App 内购买项目
    • 本地化
    • 地图与位置
    • 机器学习与 AI
    • 开源资源 (英文)
    • 安全性
    • Safari 浏览器与网页 (英文)
    打开菜单 关闭菜单
    • 完整文档 (英文)
    • 部分主题文档 (简体中文)
    • 教程
    • 下载
    • 论坛 (英文)
    • 视频
    打开菜单 关闭菜单
    • 支持文档
    • 联系我们
    • 错误报告
    • 系统状态 (英文)
    打开菜单 关闭菜单
    • Apple 开发者
    • App Store Connect
    • 证书、标识符和描述文件 (英文)
    • 反馈助理
    打开菜单 关闭菜单
    • Apple Developer Program
    • Apple Developer Enterprise Program
    • App Store Small Business Program
    • MFi Program (英文)
    • Mini Apps Partner Program
    • News Partner Program (英文)
    • Video Partner Program (英文)
    • 安全赏金计划 (英文)
    • Security Research Device Program (英文)
    打开菜单 关闭菜单
    • 与 Apple 会面交流
    • Apple Developer Center
    • App Store 大奖 (英文)
    • Apple 设计大奖
    • Apple Developer Academies (英文)
    • WWDC
    阅读最近新闻。
    获取 Apple Developer App。
    版权所有 © 2026 Apple Inc. 保留所有权利。
    使用条款 隐私政策 协议和准则