有效的图像旋转

有效的图像旋转

我不确定为什么在 Ubuntu/Linux 下这如此困难。在 Windows 上,如果我在 Windows 资源管理器或 Windows 的图像查看器中旋转图像,它会在每个应用程序中的任何地方保留该方向。但在 Ubuntu 上,一些应用程序会旋转并保存该旋转,但其他应用程序会忽略该旋转,反之亦然。

我的主要问题是,我似乎无法正确设置照片的方向,也无法让所有应用程序都支持。显然,我在拍照时会以不同的方向握住手机,我想一劳永逸地解决这个问题。但似乎没有任何关于如何做到这一点的简单教程,只有关于命令行图片编辑的随机帖子,如果我必须在查看器中打开图像,然后关闭并运行命令,然后再次打开它们进行检查,则无法正常工作……这太疯狂了。

我所能找到的最好的信息是有关 Exif 数据的神秘讨论,没有任何明确的新手指导。

是否有人有一个简单的教程,教我如何简单而永久地做到这一点,以便我可以一劳永逸地纠正我的数千张照片?

谢谢

答案1

我遇到了同样的问题并编写了一些脚本:

它实际上使用 imagemagick 旋转当前文件夹中图像文件的所有数据convert,然后使用 重置 exif 信息exiftool。您可能需要添加更多案例,这些对我来说已经足够了。

#!/usr/bin/env bash

for filename in ./*; do
        rotation=$(exiftool -Orientation -n $filename)
        rotationnumber=${rotation: -1}

        if [ "$rotationnumber" == "1" ]; then
                echo "not rotated " $filename
        elif [ "$rotationnumber" == "6" ]; then
                echo "rotated 90 CW " $filename
                # rotate data 
                convert $filename -rotate 90 $filename
                # set exif orientation to not rotated
                exiftool -Orientation=1 -n $filename
        else
                echo "unknown " $filename $(exiftool -Orientation $filename)
        fi
done
rm *_original

小心,它会删除原始数据!

相关内容