1. 原始图片文件 右键属性->详细信息,此宽高比应该显示为竖向,上传后却变横向。

 

 

2.查看exif信息图片宽高和与 1 中的宽高是颠倒的,并不相同。(在线上传图片查看exif:)(exif是英文exchangeable image file(可交换图像文件)的缩写,相机文件设计标准,记录数码照片的属性信息和拍摄数据。

 

 

3.发现问题是 exif方向默认旋转90度

 

 

 

 4.需代码顺时针方向旋转90度后此方向属性变0度,保存翻转后图片即正常。

 1             string filename = file.filename; //file为http上传文件
 2             string extname = path.getextension(filename);
 3             stream stream = file.inputstream;
 4             system.drawing.image image = system.drawing.image.fromstream(stream);
 5 
 6             byte orien = 0;
 7             var item = image.propertyitems.where(o => o.id == 274).tolist();
 8             if (item!=null && item.count() > 0)orien = item[0].value[0];
 9             if(orien == 6)
10             {
11                 image.rotateflip(rotatefliptype.rotate90flipnone);
12             }
13 
14             memorystream ms = new memorystream();
15             try
16             {
17                 if (extname.tolower().equals(".jpg"))
18                 {
19                     image.save(ms, imageformat.jpeg);
20                 }
21                 else
22                 {
23                     image.save(ms, image.rawformat);
24                 }
25 
26             }
27             catch
28             {
29                 image.save(ms, imageformat.memorybmp);
30             }

 

 

5. 代码里propertyitems的id为什么是274,orien 为什么是6(、)。

 

 

 

 

 

6.exif的orientation说明(、)