我有批量调整数码照片大小的代码。
有些照片是纵向拍摄的。
对于纵向照片,我必须旋转它们。
我正在使用以下C#代码来旋转照片:
bmpOrig.RotateFlip(System.Drawing.RotateFlipType.Rotate90FlipNone);
bmpOrig.Save(filename, ImageFormat.Jpeg);
工作正常(在网络浏览器中以我想要的方式显示)。
但是,如果我在Photoshop(和HP照片查看器)中查看新图像,则会显示旋转。
我做了很多研究,我相信有一些EXIF数据可以标记图像旋转。
我的问题是:如何重置此EXIF数据以表明图片无需旋转?
我正在VS 2010中开发。
由于
答案 0 :(得分:2)
查看Save
命令是否实际上正在编写更改?
或许可以通过将Write
块放在try/catch
块中来确保?
答案 1 :(得分:1)
据我所知,EXIF信息存储在Image类的属性中,因此请仔细查看它们并删除有问题的信息。
答案 2 :(得分:0)
Exif Orientation标签ID为0x0112
。
您可以使用img.GetPropertyItem(0x0112)
检索它,然后img.RemovePropertyItem(0x0112)
将其删除(如果您实际旋转图像以补偿该值)。
请参阅this answer了解一下这样做的小助手类(包括完整的源代码)。