公司要求对相机原生格式如后缀为dng,CR2等的图片进行转码,然后预览,自己查找了一下资料,目前仅仅是用命令行来进行处理的,因为我们是linux端的服务,所以直接封装命令行比较的简单。
DNG数据格式的介绍
http://www.cnblogs.com/adong7639/p/4446828.html
https://blog.csdn.net/wgx571859177/article/details/80755793?utm_source=blogxgwz1DNG格式基本的概念
DNG格式是在TIFF的基础上扩展出来的,要了解DNG,需要清楚TIFF,
TIFF/EP,DNG,RAW之间的关系。
DNG(Digital Negative)是Adobe开发的一种开发的raw image file format ,
主要是为了统一不同厂商的raw格式。里面使用的tag基本上都定义在TIFF或者TIFF/EP 中,
在DNG Sepcification中只是定义或者建议了数据的组织方式,颜色空间的转换等等。TIFF/EP
TIFF是一个灵活适应性强的文件格式。通过在文件标头中使用"标签",它能够在一个
文件中处理多幅图像和数据。标签能够标明图像的如图像大小这样的基本几何尺寸,
或者定义图像数据是如何排列的,或者是否使用了各种各样的图像压缩选项。
TIFF/EP的全称是"Tag Image File Format / Electronic Photography"。
它是一个名为"Electronic still-picture imaging – Removable
memory – Part 2: TIFF/EP image data format"ISO标准, 标准号为
ISO12234-2。TIFF/EP对TIFF文件扩展部分标记属性。RAW
RAW文件包含创建一个可视图像所必须的相机传感器数据信息。RAW文件的结构,包括ISO标准的RAW图像格式ISO 12234-2 ,TIFF / EP,往往遵循一个共同的模式,那就是:
一个短的文件头,它通常包含文件的字节顺序,文件标识符和主数据的文件偏移量摄像传感器元数据,用来描述图像传感器的数据,包括传感器的尺寸, 颜色滤波矩阵(color filter array)的属性和它的颜色配置文件
列入任何CMS环境或数据库中需要的图像元数据。这些措施包括曝光设定,相机/扫描仪/镜头模型,拍摄/扫描日期(和可选的位置信息),创作信息和其他。一些原始文件包含可交换图像格式的标准化元数据节;
图像缩略图;
可选的JPEG格式缩小尺寸的图像,可用于快速预览;
在电影胶片扫描中,无论是文件序列的时间码,序列码或帧编号都代表在扫描卷轴中的帧顺序。这个项目允许文件被被按帧顺序排列(不依赖于它的文件名);
传感器图像数据;常见的RAW格式
许多RAW格式, 包括 3FR (Hasselblad), DCR, K25, KDC (Kodak), IIQ (Phase One), CR2 (Canon),
ERF (Epson), MEF (Mamiya), MOS (Leaf), NEF (Nikon), ORF (Olympus), PEF (Pentax),
RW2 (Panasonic) and ARW, SRF, SR2 (Sony), 都是基于TIFF格式。 这些文件可能在许多方面偏离TIFF标准,
包括使用一个非标准的文件头,列入额外的图像标记和一些标签的数据加密。TIFF, TIFF/EP, DNG, RAW之间的关系
TIFF和DNG同为Specification,分别定义了后缀名为.tif/.tiff和.dng的文件格式同时在TIFF Specification也定义个baseline及部分扩展的tag。
TIFF/EP则定义并规范了在电子影像中所使用的TAG。
DNG同时与TIFF和TIFF/EP兼容,并包含了EXIF和XMP信息。DNG实际上就是扩张的TIFF, 把DNG的扩展名改成TIF就可以直接预览图片。
在DNG出现以前,各个数码相机制造商都有自己的格式,比如Canon(cr2/crw), Nikon(nef), Olympus(orf), Pentex(pef)等等。之所以出现这么多格式,一方面的原因是在这之前没有统一的raw格式, 但更重要的是,各个厂商希望用这个只对自己公开的数据格式来保护自己的私密信息。Adobe推出DNG希望能一统raw的天下。处理不同格式RAW或者DNG底片的方法
为了能够得到RAW格式或者DNG格式的jpg图片供我们预览,可以使用DCRAW和ffmpeg来结合使用
dcraw介绍
https://blog.csdn.net/bi_diu1368/article/details/804113041,dcraw 下载 yum install dcraw
2.1,如果相机底片有缩略图,则直接可以通过 dcraw -e test.dng 获得其缩略图(注意,缩略图也有不存在的时候)
2.2,如果没有缩略图,则可以先将RAW格式的转化为ppm dcraw -v test.dng 获取其ppm的图片;
然后在通过ffmpeg可以将 ppm格式的图片转码jpg ffmpeg -i test.ppm out.jpg
评论