.NET Image类错误地加载图像

时间:2013-03-05 20:25:40

标签: c# .net exif

背景

我正在使用Image.FromFile将jpeg加载到应用程序中。图像在资源管理器,Windows图像查看器,Photoshop和其他所有内容中都是纵向的。当我用Image.FromFile加载它时,C#告诉我它处于横向模式(高度和宽度错误的方式),所以当我现在尝试操作然后稍后保存图像时,图像的方向错误并且现在是旋转和扭曲的,它不应该是。

问题 有人知道Image.FromFile是否在Exif数据中采用任何方向通知?或者有没有人知道可能导致此问题的任何错误或“功能”?

PS 我只使用m_img = Image.FromFile(file);并在加载后直接使用visual studio中的watch检查高度和宽度,并通过执行m_out.Save(g_target + "\\" + m_file, m_enc, m_enc_params);

使用Clone将图像转换为Bitmap后将图像保存回来

1 个答案:

答案 0 :(得分:2)

这听起来像Explorer,Windows Photo Viewer和Photoshop这样的程序都尊重Camera Orientation EXIF属性,但显然GDI没有。

所以实际上,Explorer,WPV和Photoshop实际上是错误的,因为它们在存储时不显示图像,它们在加载后执行图像旋转。

如果建议您使用EXIF库来查找旋转属性并在图像加载过程中应用合适的变换。