我正在使用图像控件在 WPF 中显示/加载图像。我的 jpg 图像是 exif 文件。 我的 WPF 程序抱怨 exif 元数据标头损坏,并且不在图像控件中显示该图像。在其他地方打开此图像没有问题,例如在 mspaint 或照片应用程序或浏览器等中。
我尝试了 exiftool,它说 警告 - Exif APP1 段格式错误
我尝试调查更多有关 APP1 段格式的信息,
我打开十六进制图像,它说:
FF D8 FF E1 公元前00年 45 78 69 66 00 00 49 01 01 2C 01 2C 00 00
粗体字节表示 tiff 标头。 tiff 标头前两个字节应为 49 49 (Intel II) 或 4d 4d (Motorolla)
我的图像中的 49 01 是什么?这是腐败消息的原因吗?
我的 WPF 程序已损坏并且因此未显示任何图像。 ExifTool 将其显示为警告:格式错误的 exif app1 段。
在浏览器、mspaint 或任何其他成像工具中的其他任何地方,图像都可以正常渲染。
这里需要一点帮助。
我正在使用.NET Framework 4.6.1,也在.NET 4.8 Framework中尝试过,但出现同样的错误。
只是为了帮助任何面临类似问题的人,
我决定在 WPF 中创建位图图像时忽略颜色配置文件。这将完全忽略验证 WPF 中的任何图像标题并且一切顺利
https://learn.microsoft.com/en-us/dotnet/api/system.windows.media.imaging.bitmapcreateoptions
请注意 - 在保存图像时,它还会删除任何颜色配置文件信息。因此,如果您迫切需要维护图像的颜色配置文件,请明智地选择此选项。
当您尝试从系统中的某个位置获取批量图像时,使用 ExifTool 创建服务来检查和修复损坏的图像标头也是一种方法。