一、在利用jpg合并pdf的过程中发现大量的图片旋转,用看图软件打开旋转的照片发现是正常的,经过对比发现这些照片的image.PropertyItems.Value[0]值和没有发生旋转的照片有差异。故而写了下面的函数处理。
////// C# 检测图片是否被旋转并修改到正真的旋转 /// /// ///public static bool readPictureDegreeAndKiRotate(string path) { bool bl = false; try { //获取旋转角度 int rotate = 0; using (var image = System.Drawing.Image.FromFile(path)) { foreach (var prop in image.PropertyItems) { if (prop.Id == 0x112) { if (prop.Value[0] == 6) rotate = 90; if (prop.Value[0] == 8) rotate = -90; if (prop.Value[0] == 3) rotate = 180; prop.Value[0] = 1; } } } //旋转图片 using (Bitmap bitmap = new Bitmap(path)) { RotateFlipType rotateFlipType = new RotateFlipType(); if (rotate == 90) { rotateFlipType = RotateFlipType.Rotate90FlipNone; bitmap.RotateFlip(rotateFlipType); bitmap.Save(path); } else if (rotate == -90) { rotateFlipType = RotateFlipType.Rotate270FlipNone; bitmap.RotateFlip(rotateFlipType); bitmap.Save(path); } else if (rotate == 180) { rotateFlipType = RotateFlipType.Rotate180FlipNone; bitmap.RotateFlip(rotateFlipType); bitmap.Save(path); } bitmap.Dispose(); } bl = true; } catch (Exception ex) { bl = false; } return bl; }



