SimuLook · 来自相机的笔记

从你早就拍过的照片里读出配方

八个月前你喜欢上某一张照片的样子,却完全想不起当时相机里是什么设置。通常的回 答是:那些信息已经没了。

其实还在。你的富士相机把它写进了文件里。

每一张 JPEG 都带着自己的配方

相机生成 JPEG 时,会把用到的设置记录进文件的元数据——胶片模拟、动态范围、高光 与阴影这两项色调控制、色彩、锐度、降噪、清晰度、颗粒效果、色彩效果与彩色FX蓝 色这两项控制,以及白平衡偏移。你当时用的那份配方,就躺在这张照片里面。

也就是说,不需要数据线、也不需要相机在场,你就能把它找回来。把应用对准这张照 片,它会把设置读出来。

而且和通过 USB 读取不同,这不限于某一个相机型号。元数据格式在各机身之间是 一样的,所以任何受支持的原始富士 JPEG 都可以。我们每一次读取,都会用不止一台 机身拍出的画面来核对。

它做不到什么

关键在“原始”这两个字。

元数据存在相机写下的那个文件里。截图没有。用别的编辑器导出的照片没有,经聊天 软件发送过的没有,裁剪后重新保存的也没有。它们都产生了新文件,而新文件带的是 编辑器的元数据,不是相机的。

如果原图还在卡上,或者在一个保留原始文件的图库里,那就没问题。如果你手上只剩 从 Instagram 拿回来的那一张,设置就是没了,任何应用都找不回来——这是诚实的回 答,而不是一个看起来合理的猜测。

读不出某个文件时,我们会明确说读不出,而不是给你一个填了一半的界面。

两个问题,分开放

设置读出来之后,应用会回答第二个问题:这是你的哪一份配方?

这两件事的确定程度差别很大,应用在视觉上把它们分开。什么设置拍出了这一张,是 从文件里读出来的事实。它匹配哪一份配方,是一个判断,带着分数,也可能 带着一个差一点的候选。

有三条规则,让这个判断值得一读:

胶片模拟是一道闸门,不是一项权重。 如果照片是 ACROS 而配方是 Classic Chrome,那就没有匹配。不是 85%。它们是不同的观感,把它们平均成一个百分比,是 把胡说打扮成算术。

差一点的匹配要说出差在哪。 “匹配 87%”提示不了你任何可以动手的事。“照片 +2,配方 +1,差在阴影”才准确说明要改什么。所以应用会把不一致的那些设置列出来。

只有一方知道的字段被跳过,而不是被计分。 如果你的配方没有指定颗粒效果而照 片有,把它算成不匹配,等于惩罚诚实的配方;算成匹配,则等于平白抬高每一份配 方。它被排除在外,同时应用会告诉你实际比较了多少个字段——这样一次单薄的匹配, 读起来就是单薄的。

它有什么用

明显的用处是找回一个丢掉的观感。更好的用处是检查你自己的工作:用某份配方拍一 张,再从 JPEG 里把它读回来,确认相机里装的确实是你以为的那一份。

这也是我们验证应用本身的方式。我们那台测试相机上的七个自定义位,被用两种完全 不同的方式读过——通过数据线,以及从每一位拍出的照片里——两者在每一个字段上都一 致。同样七份配方的两种编码,彼此互不派生。

在 SimuLook 里,从照片读取配方是免费的,解析器支持的每一台相机都可以。它只需 要那个文件。


写于开发 SimuLook 期间,这是一款读取和写入富士胶片模拟配方的应用。 查看支持的相机 · 阅读其他笔记