如何更改图像文件旋转状态而不将其加载到内存中

Xiw*_*wen 5 c# jpeg exif winforms

有人告诉我像jpg这样的图像文件只是使用一些位来控制旋转状态.

有没有办法在不将图片文件加载到主内存的情况下更改此状态

dth*_*rpe 4

可以标记 JPG 文件以更改其显示方式,而无需将 JPG 图像加载并解码为内存中的位图。JPG 图像文件可以选择包含 EXIF 元数据部分,通常用于描述创建或捕获图像所涉及的设备和环境 - 相机型号、快门速度、ISO 曝光等效值等。

EXIF 元数据还包括方向标志,可用于通知图像查看器应用程序 JPG 图像的像素应如何在显示表面上定向。该方向标志(和 EXIF 元数据)可以在 JPG 文件中读取和写入,而无需加载或解码像素图像数据。这也意味着可以多次更改方向而不会丢失图像细节,因为图像不会被解压缩、旋转,然后重新压缩到磁盘上的新文件中。

为此,您需要 C# 代码来读取 JPG 文件的 JFIF 文件格式并查找并提取 EXIF 部分。我认为内置的 .NET 图像阅读器没有提供类似的功能。

请注意,并非所有 JPG 阅读器都遵循 EXIF 方向标志。我相信 Windows 内置图像预览应用程序在当前版本的 Windows 中尊重 EXIF 方向标志,但在早期的 Windows 版本(例如 Windows XP)中则不然。

有关 EXIF 方向标志的更多信息,请访问:http://jpegclub.org/exif_orientation.html