使用官方API导出的iPhone RAW照片为何比iOS相机APP输出的更暗?
ProRAW导入Mac偏暗的解决办法
问题核心原因
你当前代码把RAW文件标记为.alternatePhoto(备用资源),主资源是压缩后的JPG。而iOS原生相机拍摄的ProRAW会将DNG作为主照片资源,同时关联配套的预览图与色调映射元数据。Mac读取备用RAW资源时,会直接解析原始传感器数据,未应用原生相机自带的曝光、白平衡等优化,导致画面偏暗。
修正后的代码
let creationRequest = PHAssetCreationRequest.forAsset() // 1. 将RAW文件设为主资源,与原生ProRAW结构对齐 let rawResourceOptions = PHAssetResourceCreationOptions() rawResourceOptions.shouldMoveFile = true // 若RAW是临时文件,开启后避免重复占用磁盘空间 creationRequest.addResource(with: .photo, fileURL: photo.rawFileURL, options: rawResourceOptions) // 2. 将压缩后的JPG设为备用预览资源 let previewResourceOptions = PHAssetResourceCreationOptions() creationRequest.addResource(with: .alternatePhoto, data: photo.compressedData, options: previewResourceOptions)
关键修改说明
- 调换资源添加顺序,把RAW作为
.photo主资源,匹配原生相机的ProRAW存储逻辑 - 开启
shouldMoveFile优化磁盘占用(仅当RAW文件存于临时目录时适用) - 压缩JPG作为备用预览,保证系统显示时优先加载优化后的画面,同时保留RAW的完整编辑权限
额外注意事项
- 确保
photo.rawFileURL指向的DNG文件包含完整的ProRAW元数据(如曝光补偿、白平衡参数) - 传输至Mac时优先用Photos应用同步,避免直接拷贝文件,这样系统会正确识别并加载配套的优化数据
内容的提问来源于stack exchange,提问作者no13bus
相关产品推荐
相关产品推荐

