C# 将TIFF或JPEG转换为新JPEG时保留EXIF/元数据

C# 将TIFF或JPEG转换为新JPEG时保留EXIF/元数据,c#,jpeg,tiff,exif,preserve,C#,Jpeg,Tiff,Exif,Preserve,在此上下文中,“原始文件”是从Adobe Photoshop Lightroom导出的,可以是.tif或.jpg 下面是我当前的transfert属性代码部分 Image inputImage = Image.FromFile(currentFile.FullName); ... [SomeTreatements including resize+watermarking] ... foreach (System.Drawing.Imaging.PropertyItem p in inputIm

在此上下文中,“原始文件”是从Adobe Photoshop Lightroom导出的,可以是.tif或.jpg

下面是我当前的transfert属性代码部分

Image inputImage = Image.FromFile(currentFile.FullName);
...
[SomeTreatements including resize+watermarking]
...
foreach (System.Drawing.Imaging.PropertyItem p in inputImage.PropertyItems)
       outputImage .SetPropertyItem(p);
outputImage.Save(...);
在此之后,inputImage和outputImage具有相同数量的PropertyItem。他们有21个

但文件元数据仅保留“作者”、“程序名”、“版权”、“相机制造商”、“相机型号”

我感兴趣的其他领域还有:“拍摄日期”、“F-stop”、“曝光时间”、“ISO速度”、“焦距”、“最大光圈”、“测光模式”、“无闪光”、“白平衡”、“光度解释”

(我可能有兴趣保留其他字段,但这些字段并不总是填写在我的原始文件中,因此我现在无法判断它们是否丢失:“35mm焦距”、“被摄体距离”、“闪光能量”)

原始文件提到:“EXIF版本:0230”,输出文件没有EXIF版本


谢谢您的帮助。

输出文件的JPEG文件格式是什么?我不确定能否回答这个问题。文件扩展名是.jpg,但我想不是这样。保存代码使用与System.Drawing.Imaging.ImageFormat.Jpeg匹配的image save和ImageCodeInfo。在二进制数据的顶部通常有一个类似JFIF或EXIF的代码。使用Notepad++打开文件时,我会在某处看到JFIF。我可以解释一下……现在,如果你能告诉我如何保存EXIF而不是JFIF,我会很感兴趣,因为第一次互联网搜索并没有给我多少线索。