我正在尝试从DNG文件(而不是缩略图)获取jpg预览。据我所知,预览只是一个exif预览,不是DNG特有的。然而,与我一样的谷歌搜索,我无法找到任何关于从c#中的文件的exif专门获取预览。
http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/EXIF.html
从此站点看,预览从标签ID 0x0111开始,DNF组为SubIFD1。长度为0x0117,SubIFD1。但我真的不明白这个群体意味着什么。我之前使用过Image.GetPropertyItem(),但我认为因为文件是DNG,它不会让我把它作为图像加载,我得到一个内存不足的例外,这显然可能意味着它&#39 ; s是一种无法识别的像素格式。
图像格式是否与exif信息不可分割,或者有没有办法在不需要解码DNG的情况下读取它?
我知道有一些用于打开DNG的库,但到目前为止我还没有成功地将它们应用到我的软件中,我想保持它快速而轻便。如果我能够把这个预览拿出来,那将是一个完美的情况。
答案 0 :(得分:0)
DNG规范是TIFF的扩展,因此如果你有一个支持JPEG压缩的TIFF解码器,它应该能够解码预览图像(预览是JPEG解码的)。但是,您可能需要“帮助”将解码器指向正确的子IFD。
否则,您可以解析TIFF结构,找到正确的IFD,并使用JPEG解码器解码嵌入的JPEG预览。
我创建了一个reader in Java(仍在进行中),它解析TIFF结构并提取缩略图(如果存在)和预览(以及一些蹩脚的尝试来提取未压缩的RAW CFA数据,这是远远的从完成)。虽然代码还没有生产质量,但它可能会给你一些启发。
祝你好运! : - )