如果JPEG圖像僅從二進制文件中旋轉(如File.ReadAllBytes()
的結果),您能否告訴我們(假設使用.NET 4.0,WinForms)?是否有可能知道JPEG圖像是否僅從其原始字節進行旋轉?
UPDATE
謝謝大家對你的答案爲止。
只是爲任何試圖解決同樣問題的人單挑。我被System.Drawing.Image
類欺騙,該類在用FromFile(...)
初始化時加載EXIF標籤,但似乎在從流初始化時忽略它們。我正在使用ExifTagCollection庫來讀取EXIF標籤,但我想結果可以與任何其他庫相媲美。
var bytes = (get binary from server)
File.WriteAllBytes(path, bytes);
WORKS:
var image = Image.FromFile(path);
不起作用:(失敗的FileStream
太)
using (var ms = new MemoryStream(bytes))
{
image = Image.FromStream(ms);
}
繼續:
ExifTagCollection exif = new ExifTagCollection(image);
foreach (ExifTag tag in exif)
{
Console.WriteLine(tag.ToString());
}
如果從流中加載,則沒有標記。
您是否有原始參考圖像? – 2012-08-13 10:28:11
我將使用手機攝像頭拍攝的圖像上傳到服務器。其中一些採用肖像模式,一些採用橫向模式。我很想知道是否有可能讓這個信息服務器端基於上傳的二進制文件。 – 2012-08-13 10:31:22
你可以比較寬度和高度? – 2012-08-13 10:45:28