以编程方式验证PIL是否基于EXIF正确旋转图像

时间:2013-10-22 17:14:13

标签: python python-2.7 rotation python-imaging-library exif

注意:我不打算修改EXIF数据!

我正在尝试根据其EXIF数据重新定位图像。如果方向值为3, 6, or 8,我会相应地旋转它。

我现在遇到的问题是,在rotate()之后,我找回了没有格式的图片,正如文档所说的那样。

  

im.format ⇒字符串或无

     

源文件的文件格式。对于库本身创建的图像(通过工厂函数,或通过在现有图像上运行方法),此属性设置为“无”。

因此,我无法在_getexif()返回的图像上调用rotate(),因为它不是返回类的成员。如何以编程方式验证 旋转是否正确?

编辑:我注意到图片'exif' dict中有一个.info键,但它是一个字节字符串,所以我不知道该如何处理它

1 个答案:

答案 0 :(得分:0)

对于90度(顺时针和逆时针)旋转,您可以验证已切换的宽度和高度值。显然这对方形图像没有帮助(照片不太可能)。

对于180度旋转,确认宽度和高度没有变化。此外,您可以采取一些顶行和底行的措施。例如,转换为灰度并计算暗度(或保持颜色并计算蓝色)。允许一些变化,较暗的一面现在应该在另一边。您还可以测量一些左右行。同样,这可以应用于90度旋转。