Вам необходимо изучить изображение и извлечь информацию об ориентации из тегов exif.
Первое, что вам нужно сделать, это получить Exif Reader. Например, в VB.NET написано Code Project .
Если вы загрузите файл в Image
, вы сможете прочитать свойства EXIF из PropertyItems
(как демонстрирует этот код C #):
using (Image image = Image.FromFile(imageName))
{
// Non property item properties
this.FileName = imageName;
PixelFormat = image.PixelFormat;
this.Width = image.Size.Width;
this.Height = image.Size.Height;
foreach (PropertyItem pi in image.PropertyItems)
{
EXIFPropertyItem exifpi = new EXIFPropertyItem(pi);
this.propertyItems.Add(exifpi);
}
}
Где EXIFPropertyItem
- это класс, который преобразует PropertyItem
. PropertyItem
Id
- это код EXIF (ориентация 0x0112
).
Затем найдите свойство Orientation и прочитайте его значение. Значения 5, 6, 7 и 8 предназначены для портретных (вертикальных) изображений, например, поворот 6 на 90, поворот 8 на -90.
Получив ориентацию, вы можете вызвать соответствующее преобразование вращения, чтобы отобразить изображение в правильной ориентации.