当从iPhone、三星等手机上传图片到服务器后,通常需要进行旋转处理,否则在进行图片压缩、缩放处理后会丢失正确的位置信息,导致显示的图片不处于正确的位置上。
处理的做法就是读取照片的Exif信息,并旋转到正确位置。代码如下:
/// <summary>
/// 将图片旋转到正确位置
/// 旋转角度 参数值
/// 0° 1
/// 顺时针90° 6
/// 逆时针90° 8
/// 180° 3
/// </summary>
/// <param name="image">图片对象</param>
/// <returns></returns>
public void OrientationImage(Image image)
{
if (Array.IndexOf(image.PropertyIdList, 274) <= -1) return;
var orientation = (int)image.GetPropertyItem(274).Value[0];
switch (orientation)
{
case 1:
// No rotation required.
break;
case 2:
image.RotateFlip(RotateFlipType.RotateNoneFlipX);
break;
case 3:
image.RotateFlip(RotateFlipType.Rotate180FlipNone);
break;
case 4:
image.RotateFlip(RotateFlipType.Rotate180FlipX);
break;
case 5:
image.RotateFlip(RotateFlipType.Rotate90FlipX);
break;
case 6:
image.RotateFlip(RotateFlipType.Rotate90FlipNone);
break;
case 7:
image.RotateFlip(RotateFlipType.Rotate270FlipX);
break;
case 8:
image.RotateFlip(RotateFlipType.Rotate270FlipNone);
break;
}
image.RemovePropertyItem(274);
}
本文介绍了一种处理从iPhone、三星等手机上传图片到服务器后旋转问题的方法。通过读取图片的Exif信息并根据其定向标签进行相应的旋转处理,确保图片在服务器上的正确显示。代码示例详细展示了如何使用C#实现这一功能。

1157

被折叠的 条评论
为什么被折叠?



