C#:取出JPEG的图像部分备份元数据?

时间:2010-04-02 23:24:00

标签: metadata jpeg exif xmp iptc

这将与典型方法略微相反。

之前我曾使用ExifTool进行元数据操作,但我真的希望在我做永久性之前保留最好的元数据备份。

我想要做的是删除JPEG文件的压缩图像部分,以保留其他所有内容。这是备份EXIF,Makernotes,IPTC,XMP等,无论是在文件的开头还是结尾。

到目前为止,我尝试从原始JPEG的副本中删除所有元数据,并将其用作从原始文件中取出的字节数的基础。查看原始数据后,剥离的副本似乎不是原始副本中的连续副本。剥离版本中可能仍存在一些标题信息。我真的不知道。我想这不是一个好方法。

是否有任何标记可以绝对告诉我压缩的JPEG图像数据的开始和结束位置?据我所知,JPEG文件有0xFFD8和0xFFD9来标记图像的开始和结束,但已经发现元数据实际上是在这些标记之间。

我正在使用C#。

谢谢。

2 个答案:

答案 0 :(得分:0)

要正确执行此操作,您需要完全解析JPEG / JFIF格式并丢弃任何您不想要的内容。在JPEG EOI之后,元数据全部保存在APP段或预告片中,因此可能您将丢弃其他所有内容。完全解析JPEG / JFIF并非易事,为此我将引用JPEF / JFIF规范。

答案 1 :(得分:0)

您可以使用我的JpegSegmentReader库中的MetadataExtractor类从JPEG图像中检索特定的细分。