我正在尝试使用Python调整图片的大小。 用我的相机,文件都是横向写的。
exif信息处理一个标签,要求图像查看器以某种方式旋转。 由于大多数浏览器不理解此信息,我希望使用此EXIF信息旋转图像,并保留所有其他EXIF信息。
你知道我怎么用Python来做吗?
在阅读EXIF.py源代码时,我发现了类似的东西:
0x0112: ('Orientation',
{1: 'Horizontal (normal)',
2: 'Mirrored horizontal',
3: 'Rotated 180',
4: 'Mirrored vertical',
5: 'Mirrored horizontal then rotated 90 CCW',
6: 'Rotated 90 CW',
7: 'Mirrored horizontal then rotated 90 CW',
8: 'Rotated 90 CCW'})
如何利用这些信息和PIL应用它?
我最后使用了pyexiv2,但是在GNU之外的其他平台上安装有点棘手。
如果您看到一些可以改进的地方(除了Python2.5仍然是这样),请告诉我。
尽管PIL可以读取EXIF元数据,但它无法更改它并将其写回图像文件。
一个更好的选择是pyexiv2库。有了这个库,可以很简单地翻转照片的方向。下面是一个例子:
这将方向设置为6,对应于“旋转90 CW”。
首先你要确保你的相机有一个旋转传感器。大多数没有传感器的相机型号只需将所有图片的方向标签设置为1(水平)。
那么我建议在您的案例中使用pyexiv2和pyjpegtran。PIL不支持无损旋转,这是pyjpegtran的领域。pyexiv2是一个允许您将元数据从一个映像复制到另一个映像的库(我认为方法名是copy metadata)。
在浏览器中显示照片之前,是否确实不想调整照片的大小?800万像素的JPEG对于浏览器窗口来说太大了,会导致无休止的加载时间。
相关问题 更多 >
编程相关推荐