在不依赖EXIF数据的情况下缩放和旋转图像?


10

是否有用于Linux的简单图像编辑器这样的东西,它允许缩放和旋转图像而无需使用EXIF数据进行缩放和旋转?

到目前为止,我已经尝试了EOGShotwellGIMP,当我旋转图像时,它们将它们存储在EXIF标头中。这个我不要

即使GIMP可以做到,它也很耗时,因为在处理JPEG文件时需要大量的鼠标单击。


2
因此,基本上,如果将图像向左旋转90度,是否希望图像本身在数据中向左旋转90度?不是通过存储在EXIF数据中的信息,对吗?
JakeGould

究竟。我需要这样做是因为Github README.md文件不了解EXIF。
Jasmine Lognnes,2015年

答对了!我发布了更完整的答案,但是我认为您遇到的问题是在现代图像编辑程序中保存图像与导出图像之间的根本区别。我的答案会更详细,但是我相信,如果您要通过GIMP导出JPEG,则可以得到所需的准确结果,而不必处理因缩放和旋转等变换而偏爱的EXIF数据。
JakeGould

在exif剥离的jpeg上使用GIMP的导出添加了一个新的。
茉莉·洛尼斯

是的,它可能已经添加了新的EXIF数据,但是实际图像数据是否已根据您的问题更改为匹配方向?
JakeGould

Answers:


15

是否有用于Linux的简单图像编辑器这样的东西,它允许缩放和旋转图像而无需使用EXIF数据进行缩放和旋转?

节省出口

我知道您说过您真的不想在GIMP中执行此操作,但是根据我的经验,您遇到的问题-软件倾向于EXIF方向数据而不是实际转换图像中的像素-归结为导出图像和保存图像。

过去,在处理简单的方向转换时,世界上100%的所有图像编辑器实际上都会对像素进行转换/修改。直到最近,图像编辑程序才开始使用EXIF数据来存储一些物理转换数据。

为什么?简单。由于JPEG格式是有损格式(即使质量设置为100%),因此将JPEG保存为诸如图像旋转之类的简单操作也会慢慢降低数据质量。相反,通过将该数据存储为EXIF信息,原始JPEG图像保持不变,但传递了转换数据,因此您可以看到旋转的图像而不会降低图像质量。

这就是出口概念发挥作用的地方。许多图像编辑程序(例如GIMP)都允许导出图像,这基本上意味着修改图像数据本身并对其进行优化以用于非图像编辑软件。

因此,尽管可能有其他软件工具为诸如旋转之类的任务显式修改图像数据,但安装和使用它们可能会过大。相反,我建议您仅在使用的任何图像编辑软件中尝试导出功能;无论是GIMP,Photoshop还是其他产品。

批量处理

说了这么多,您确实提到了GIMP可能太耗时以满足您的需求。不清楚确切的工作流程是什么,但是如果您的文件夹/目录中填充了JPEG,则可能需要处理,我建议您调查其他答案中提到的工具

  • exiftran:用于转换数码相机JPEG图像的工具,可以执行以下操作:

它可以像jpegtran一样进行无损旋转,但是与jpegtran不同,它关心EXIF数据:它可以通过检查exif方向标记自动旋转图像,如果需要的话可以更新exif信息(图像尺寸,方向),还可以旋转exif缩略图。它可以一次处理多个图像。

  • JHead:专门jhead-autorot选项一起使用,描述如下:

使用Exif标头的'Orientation'标签,旋转图像使其直立。程序“ jpegtran”用于执行旋转。大多数Linux发行版中都包含该程序。对于Windows,您需要获取它的副本。旋转后,Exif标头的方向标记设置为“ 1”(正常方向)。Exif缩略图也会旋转。Exif标头的其他字段(包括尺寸)未更改,但JPEG高度/宽度已调整。

此功能对较新的数码相机特别有用,后者使用相机中的内置方向传感器自动在Exif标头中设置方向字段。

这是另一个线程中提到的另一个工具:

  • NConvert:NConvert是用于Win32,Linux,DOS,OS / 2和其他平台的多格式命令行图像转换器。快速入门的细节似乎在这里。看来,如果您使用nconvert-jpegtrans正是您要寻找的选项。但我不知道这是否只是使用的相同的库/核心功能jpegtran这对方的回答上这个问题的建议?

最后,也许将ImageMagick convert工具与该-auto-orient选项配合使用对您有用吗?

自动定向

调整图像,使其方向适合观看(即左上角方向)。

该操作员读取并重置EXIF图像配置文件设置“方向”,然后对图像执行适当的90度旋转以对图像进行方向调整,以便正确观看。

此EXIF配置文件设置通常是使用数码相机中的重力传感器设置的,但是直接向下或向上拍摄的照片可能没有合适的值。同样,在未重置此设置的情况下经过“校正”方向的图像可能会再次“校正”,从而导致错误结果。如果先前已删除EXIF配置文件,则-auto-orient运算符将不执行任何操作。


如果命令行工具可以基于EXIF进行实际的像素旋转,然后再清除EXIF信息,那将是完美的。那可能吗?
茉莉·洛尼斯

1
@JasmineLognnes我还没有实际使用任何工具自己,但这个问题是工具,我应该有很好的参考研究,但在我看来,exiftranjpegtran可能是你在找什么。我将尝试使用这些工具都具有的选项,然后看看会发生什么。尽我所能。祝好运!
JakeGould 2015年

1
您可能会觉得很幽默,系统在LQ Post审查队列中选择了此答案作为审核测试。我投票决定不删除它,顺便说一句,显然,这是正确的答案。:-)
fixer1234

@ fixer1234是的,当我较早检查低质量帖子时,我看到了自己。搞笑!建议使用指向不同软件包的各种链接来触发它。但是,嘿!我很高兴有一些至少具有人工筛选功能的自动管制机制。
JakeGould 2015年

2

我通常jpegtran用来旋转照片:

jpegtran -copy all -rotate 90 -outfile newimg.jpg oldimg.jpg

90向右旋转,左为270(翻转为180)。


2

在GIMP中导出时,您可以在保存之前禁用EXIF和XMP的弹出窗口中单击“高级”。

编写脚本的整体算法

  • 对于每个文件
  • 从中保存价值 exiftool * | grep Orientation
  • 用删除exif exiftran -ai *
  • convert -rotate与步骤2中的值一起使用

这正是我想要的。一种检测图像是否旋转的方法,然后基于该方法旋转图像的方法。谢谢!
xarlymg89

0

您可以使用Exiftool从JPEG图像中删除EXIF数据。


是的,这样做非常有用,但是当我以后编辑图像时,会添加新的EXIF标头。
Jasmine Lognnes 2015年

EXIFTool可以删除数据,但不会更改,旋转或缩放图像。它只会擦除数据,然后JPEG将以其原始存在的原始格式显示。这在某些情况下很有用,但在这种情况下则不是。
JakeGould
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.