3

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

有些照片是纵向拍摄的。

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

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

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

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

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

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

我的问题是:如何重置此 EXIF 数据以指示图像不需要旋转?

我正在开发 VS 2010。

谢谢

4

3 回答 3

2

查看Save命令是否真的在写入更改?

Write也许通过将命令封闭在一个try/catch块中来确保?

于 2012-05-05T20:44:54.817 回答
1

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

于 2013-04-10T23:46:25.503 回答
0

Exif 方向标签 ID 为0x0112.

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

有关执行此操作的小型帮助程序类,请参见此答案(包括完整的源代码)。

于 2016-07-19T13:39:48.940 回答