2012-05-05 131 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的小帮手类,只是(完整的源代码包括)。