在 iOS 17 前,iPhone 14 pro 系列的用户为了能拍 4800 万像素的照片,要么开启 ProRaw 要么用第三方相机。但是 48mp 的 ProRaw 实在太大,没必要每张都保留在手机上,因此楼主之前的常规操作是用快捷指令里的格式转换功能把 raw 转为 jpg 。但这样做有一个问题,就是似乎会把 HDR 信息( gain map )丢掉,直观感受就是转成 jpg 之后没有“比白更白”的高光了。最近研究了一下怎样在转换时保留 HDR 信息,结果如下(看到有人发帖提及 HDR 照片,想分享一下):
升级 iOS 17 后使用 lightroom 等软件将 ProRaw 保存为通用的 HDR 照片文件。具体可以看 t/981298 这个帖子的讨论。
1.如果照片未在相册中编辑,可以使用 exiftool 来提取 dng 文件中的预览 jpg 文件。这个预览文件就是 iOS 相机的直出图。
( brew install exiftool ,如果没有的话)
exiftool -b -PreviewImage xxx.DNG > xxx.jpg
2.如果照片已经在相册中编辑,直接隔空投送给别的设备,相册会将编辑结果导出为 jpg 并发给别的设备。之所以情况 1 不能用这个方法,是因为照片未在相册中编辑过的话隔空投送会传送原始 DNG 文件。
如果有有更好的方案,欢迎提出!
1
Valyrian 2023-10-13 04:27:23 +08:00
因为 jpeg 是 sRGB 的色彩空间,根本无法表达 HDR 信息,你需要的是 rec 2020 色彩空间,ffmpeg 应该就能转,可以用这几个格式 webp, jpeg xl, avif, heif
|
2
LUO12826 OP @Valyrian #1 苹果在 iOS 17 前有自己的私有 HDR 方式,是在 jpg 的 exif 里的某个私有字段加上了 gain map ,用来指示照片的哪些像素需要“比白更白”。我说的方案 2 就可以在 ProRaw 转为 jpg 时带上这个 gain map 。你说的这种方式类似于上面的方案 1 ,依靠通用的 hdr 格式(但我不确定 ffmpeg 能不能处理 DNG 文件)。
|
3
tywtyw2002 2023-10-13 05:56:21 +08:00 via iPhone
试试 imagemagick , 不知道支不支持
|
4
Valyrian 2023-10-13 07:26:17 +08:00
@LUO12826 感觉还是 avif 好点,chrome 和苹果都支持。不知道 ffmpeg 能不能解码 proraw ,可能要加个 profile tonemap 之类的。
|
5
metalman7511 2023-10-13 07:36:33 +08:00
有个 app 叫 myertidy ,一键可以解决你的问题
|
6
LUO12826 OP @metalman7511 #5 试了一下,转换后丢掉了 HDR 信息。估计是调用系统的哪个 API 转的,和快捷指令里的一样
|
7
lqcc 2023-10-13 09:00:21 +08:00
ios 17 之后,iphone 14 pro 不是有了一个 heif max 选项吗?这个可以拍 4800 hdr 、并保存为 jpg 格式的吗?
|
9
jsq2627 2023-10-13 09:27:28 +08:00 via iPhone
@Valyrian jpeg 可以带有 color profile ,不一定是 srgb 。但是 jpeg 因为只有 8bit ,不是理想的 HDR 存储容器
|
10
hunono 2023-10-13 09:28:22 +08:00 1
建议还是拍 raw ,我昨天测试了同一场景 raw 和 heif (本身已是 hdr )后期更强的 hdr 效果,heif 断层涂抹严重,raw 后期出来完全没修图的感觉,很完美。
为什么要后期更强的 hdr 效果?因为 iPhone 拍摄的 hdr 偏保守,如果 srgb 的白点是 300 尼特、180 尼特,那 iPhone 拍的 hdr 感觉最多 600 尼特、800 尼特,后期可以激发 1000 、2000 尼特的效果。 |
13
LudwigWS 2023-10-13 18:50:16 +08:00 via iPhone
你们也太专业了
|
14
qdwang 309 天前 1
可以试试我开发的 JPEG XL Toolbox ,能把 ProRAW 转换成 JPEG XL ,同时保留 HDR 效果
|