2012-05-05 167 views
2

我有代碼批量調整數字照片。90度圖像旋轉和重置EXIF旋轉

某些照片是以縱向拍攝的。

對於縱向照片,我必須旋轉它們。

我使用下面的C#代碼,旋轉照片:

bmpOrig.RotateFlip(System.Drawing.RotateFlipType.Rotate90FlipNone); 
bmpOrig.Save(filename, ImageFormat.Jpeg); 

它工作正常(顯示我想在web瀏覽器的方式)。

但是,如果我在Photoshop(和HP照片查看器)中查看新圖像,它將顯示旋轉。

我做了大量的研究,我相信有EXIF數據標誌着圖像旋轉。

我的問題是:如何重置此EXIF數據以指示圖像不需要旋轉?

我在VS 2010年開發

感謝

+1

http://msdn.microsoft.com/en-us/library/system.drawing.imaging.encodervalue.aspx –

回答

2

若見Save命令實際上寫的變化?

可能確保將Write命令放在try/catch塊中?

1

據我所知,EXIF信息存儲在Image類的屬性中,因此請仔細查看它們並刪除違規的信息。

0

Exif Orientation Tag id是0x0112

您可以使用img.GetPropertyItem(0x0112)檢索它,然後img.RemovePropertyItem(0x0112)將其刪除(如果您物理旋轉圖像以補償該值)。

請參閱this answer的小幫手類,只是(完整的源代碼包括)。