dcraw(读作”dee-see-raw”)是一款可以支持各种RAW片的完全符合UNIX哲学的开源软件,它能把相机拍的RAW片转换成PPM或者TIFF格式的图片。这类软件通常用叫做RAW转换软件,或者叫做RAW片显影软件(RAW developer),adobe camera raw就是这类软件;UFRaw也是,不过它真正解RAW用的代码还是dcraw。RAW到PPM,TIFF这类图片转换的过程称作RAW显影,对应胶片显影的概念,RAW片也可以被看作是一种数字底片。
dcraw只有一个纯C文件dcraw.c,最新版的代码有9400行左右,作者是Dave Coffin,项目主页在这里 http://www.cybercom.net/~dcoffin/dcraw/ ,可以下载最新的代码,查看支持的机型,以及FAQ列表。dcraw更新的很快,基本上新上市的相机都会被马上支持,咱刚入的650D就是支持的(Canon EOS 650D/EOS Rebel T4i/EOS Kiss X6i UFRaw 显示问题)。
相机市场上有各种品牌厂商,各家都有自己RAW格式,并没有一个统一的标准,每家厂商也不公开自己的格式标准,因此解码这些RAW片的软件都由各厂商自己提供,属于私有软件。然后就有人看不下去了,跳出来说,我要写一个开源的,能跑在各种系统上支持各种RAW格式的解码器,并且咱还要用纯C来写,后来他还真写出来,就是dcraw,这牛人就是Dave Coffin,这是作者的原话”So here is my mission: Write and maintain an ANSI C program that decodes any raw image from any digital camera on any computer running any operating system.”
现在linux下大部分开源的raw处理软件都是直接拿它来解码raw片,像UFRaw、RawTherapee等,因为dcraw是cli的,这些软件一都是gui的,操作友好。据说早期很多商业软件包括Adobe Camera Raw都是基于dcraw的,可见不是一般的nb啊。
虽然有ufraw这些图形界面的raw developer可以用,但是相对于命令行来说,图形界面往往会隐藏很我功能,所以要想体会dcraw的真正强大之处,最好直接使用dcraw,而不是ufraw。有个老外写了个dcraw教程,非常详细,看这里 dcraw tutorial , 本人在今后使用中有什么心得体会也会写个教程的,嘿嘿。