我有一个在iPhone上拍摄的JPEG图像。在我的台式机(Windows Photo Viewer,Google Chrome等)上,方向不正确。
我正在使用ASP.NET MVC 3 Web应用程序,需要在其中上传照片(当前使用plupload)。
我有一些服务器端代码来处理图像,包括读取EXIF数据。
我尝试读取EXIF元数据中的PropertyTagOrientation
字段(使用GDI-Image.PropertyItems
),但是该字段不存在。
因此,它可能是一些特定的iphone元数据,也可能是其他一些元数据。
我使用了另一个工具,例如Aurigma Photo Uploader,它可以正确读取元数据并旋转图像。它是如何做到的?
有谁知道Aurigma使用的其他JPEG元数据还可以包含所需的信息以便知道需要旋转吗?
这是我用来读取EXIF数据的代码:
var image = Image.FromStream(fileStream);
foreach (var prop in image.PropertyItems)
{
if (prop.Id == 112 || prop.Id == 5029)
{
// do my rotate code - e.g "RotateFlip"
// Never get's in here - can't find these properties.
}
}
有任何想法吗?
最佳答案
您似乎忘记了所查找的方向ID值是十六进制的。如果使用112,则应使用0x112。
This article解释了Windows向上定向的方式,而this one似乎与您正在做的事情非常相关。
关于c# - 读取JPEG元数据时出现问题(方向),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6222053/