Изображения поворачиваются после ImageJob, но не хотят
У меня проблема с поворотом некоторых изображений во время обработки ImageJob.
У меня проблема с определением правильного поворота изображения, загруженного с некоторых (современных) мобильных устройств.
Изображения поступают с iPad mini и Galaxy S5. Я делаю портретные фотографии, но они поворачиваются после загрузки и изменения размера. Если я делаю пейзажную картину, обработка работает отлично.
Я пытался использовать плагин автоответчика, но это, похоже, не имеет значения.
Код является базовым и работает на некоторых изображениях, но не на других, как указано выше.
HttpPostedFileBase file = base.Request.Files["photo"];
ImageResizer.ImageJob i = new ImageResizer.ImageJob(file, "~/OrigFiles/" + cvm.Id + ".<ext>", new ImageResizer.Instructions(
"width=768;height=1024;format=jpg;mode=max;autorotate=true;"));
i.CreateParentDirectory = true;
i.Build();
Я послал фотографию с телефона на свой ноутбук, загрузил ее, и она работала нормально, что странно. Может ли это быть проблема загрузки с мобильного браузера? Проблема возникает как на iOS Safari, так и на Chrome на новых устройствах. Что странно, так это то, что на старых Nexus 7 первого поколения работают портретные изображения.
Дальнейшие заметки
Вот эта диагностика:
You are using plugins from the Creative Edition: DiskCache (Performance Edition), WatermarkPlugin (Creative Edition)
Registered plugins:
ImageResizer.Plugins.Basic.DefaultEncoder
ImageResizer.Plugins.Basic.NoCache
ImageResizer.Plugins.Basic.ClientCache
ImageResizer.Plugins.Basic.Diagnostic
ImageResizer.Plugins.Basic.SizeLimiting
ImageResizer.Plugins.MvcRoutingShim.MvcRoutingShimPlugin
ImageResizer.Plugins.DiskCache.DiskCache
ImageResizer.Plugins.Watermark.WatermarkPlugin
ImageResizer.Plugins.Basic.AutoRotate
Configuration:
<resizer>
<plugins>
<add name="MvcRoutingShim" />
<add name="DiskCache" />
<add name="Watermark" />
<add name="AutoRotate" />
</plugins>
<watermarks>
<otherimages path="~/watermarks" right="20" bottom="20" width="20" height="20" />
<group name="portraitBG">
<image path="~/PORTRAIT.png" imageQuery="" top="0" left="0" />
<text text="#{name}" vertical="false" align="center" top="818" fontSize="60" color="FFF" />
</group>
<group name="landscapeBG">
<image path="~/LANDSCAPE.png" imageQuery="" top="0" left="0" />
<text text="#{name}" vertical="false" left="50" top="650" fontSize="60" color="FFF" />
</group>
</watermarks>
</resizer>
Образец изображения
Вот пример изображения: Образец изображения
https://github.com/recurser/exif-orientation-examples/blob/master/Portrait_8.jpg
Когда я загружаю образец изображения и загружаю его со своего ноутбука, он работает как портрет. Когда я загружаю его и загружаю с телефона (Samsung S5 Running 4.4.2), он не работает и сохраняет ландшафт.