从没有图像类的文件中获取exif

本文关键字:文件 获取 exif 图像 | 更新日期: 2023-09-27 18:03:27

我正试图从DNG文件(不是缩略图)中获得jpg预览。据我所知,预览只是一个exif预览,而不是特定于DNG。然而,尽管我在谷歌上搜索了很多次,但我找不到任何关于c#中从文件出口处获得预览的具体内容。

http://www.sno.phy.queensu.ca/菲尔/exiftool/tagname/EXIF.html

从这个站点看来,预览开始于标签ID 0x0111, Group SubIFD1 for DNG。长度为0x0117, SubIFD1。但我真的不明白这群人是什么意思。我以前使用过Image. getpropertyitem(),但我认为,因为文件是一个DNG,它不会让我加载它作为一个图像,我得到一个内存不足的异常,这显然意味着它是一个无法识别的像素格式。

图像格式是exif信息的组成部分,还是有一种不需要解码DNG就可以读取它的方法?

我知道有一些库是为打开DNG而制作的,但是到目前为止,我还没有成功地将它们适应我的软件,我想保持它的快速和轻量级。

从没有图像类的文件中获取exif

DNG规范是TIFF的扩展,所以如果您有一个支持JPEG压缩的TIFF解码器,它应该能够解码预览图像(预览是JPEG解码的)。不过,您可能需要"帮助"将解码器指向正确的子ifd。

否则,您可以解析TIFF结构,找到正确的IFD,并使用JPEG解码器解码嵌入的JPEG预览。

我用Java创建了一个阅读器(仍在开发中),它解析TIFF结构并提取缩略图(如果存在的话)和预览(以及提取未压缩的RAW CFA数据的一些蹩脚尝试,这还远远没有完成)。虽然代码还没有达到生产质量,但它可能会给你一些灵感。

祝你好运!: -)