90度图像旋转和重置EXIF旋转

时间:2012-05-05 19:24:51

标签: c# image-processing exif

我有批量调整数码照片大小的代码。

有些照片是纵向拍摄的。

对于纵向照片,我必须旋转它们。

我正在使用以下C#代码来旋转照片:

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

工作正常(在网络浏览器中以我想要的方式显示)。

但是,如果我在Photoshop(和HP照片查看器)中查看新图像,则会显示旋转。

我做了很多研究,我相信有一些EXIF数据可以标记图像旋转。

我的问题是:如何重置此EXIF数据以表明图片无需旋转?

我正在VS 2010中开发。

由于

3 个答案:

答案 0 :(得分:2)

查看Save命令是否实际上正在编写更改?

或许可以通过将Write块放在try/catch块中来确保?

答案 1 :(得分:1)

据我所知,EXIF信息存储在Image类的属性中,因此请仔细查看它们并删除有问题的信息。

答案 2 :(得分:0)

Exif Orientation标签ID为0x0112

您可以使用img.GetPropertyItem(0x0112)检索它,然后img.RemovePropertyItem(0x0112)将其删除(如果您实际旋转图像以补偿该值)。

请参阅this answer了解一下这样做的小助手类(包括完整的源代码)。