Answers:
我会从JPEGclub.org的列表中推荐任何应用程序,该应用程序将为Independent JPEG Group开发和维护软件。他们有一个称为的免费代码jpegtran
,可以进行一些基本转换(例如旋转),而无需重新编码图像。
以“幼稚”的方式旋转图像(渲染为位图,重新定位位图并重新保存)会导致JPEG伪像增加 —且文件更大而有用数据更少。
上面的列表包含众所周知的“正确方法”执行的软件。其他软件也可以(也许使用不同的代码库),但是不幸的是ImageMagick并不是其中之一。但是,截至2016年8月,包括Windows在内的许多不同计算平台有87种不同的选择。
注释中的注释:OP根据此答案使用了此循环:
FOR %f IN (.\Src\*.*) DO jpegtran.exe -rotate 180 %f .\Rotated\%~nxf
效果很好。
jpegtran
; 更好的是,如果您关心保持EXIF的缩略图和Orientation
标签一致,则可以考虑exiftran
JPEGclub列表中不存在哪些内容,但它是无损的。我的命令(在Linux上)是exiftran -i -1 *.jpg
or find . -name '*.jpg' -print0 | xjobs -0 -l 10 exiftran -i -1
;这将需要适应Windows Shell。
jpegtran
直接推荐的原因之一。
您可以将ImageMagick与以下rotate
选项一起使用:
convert image.jpg -rotate 180 result.jpg
您应该能够将此命令应用于多个文件,具体取决于您的环境。
在Windows上,您可以在两次操作中都不需要任何其他软件的情况下进行操作。在文件资源管理器中选择要旋转的文件,右键单击并两次“向右旋转”(或向左旋转)。如果图像允许(例如尺寸不“有趣”),它将无损地完成。
您可以在Windows上使用xnview,它具有一些批处理模式处理功能,并且对于图像的简单旋转,还可以选择基于exif数据旋转图像。
选择所有图像(甚至正确定向的图像!它会知道它们已经定向好了),“根据exif旋转”,它将完成此操作(无需重新计算jpg,因此不会损失质量)。
就像他们在http://newsgroup.xnview.com/viewtopic.php?t=1420上说的那样 :
为此,请选择所有图像,然后选择“工具> JPG无损转换”(或工具栏中的符号“ JPG无损转换”下拉列表)。在对话框中,选中带有“ EXIF”的按钮,然后按“ Go”。XnView将基于EXIF方向标记永久旋转图像。
下次,如果您有足够的gopro,则可能还要检查它的功能:https ://gopro.com/support/articles/what-is-auto-image-rotation
我可以建议仅在Windows上运行的Irfanview批处理模式。Irfanview也适用于简单的编辑,但是它不是GIMP。
安装后,选择“文件|批量转换/重命名”。从那里开始有点棘手,您需要选择所有文件,需要指定目标文件夹,并且需要单击“高级”按钮以查看“高级”选项。它可以旋转+/- 90°,但是要旋转180°,您需要在最右边选择精细旋转并输入180°。请注意,您还可以调整它们的大小,更改JPEG质量并重命名它们。
您也可以通过停留在GUI上并使用键盘来相当快地完成此操作。打开图片文件夹中的任何文件。按两次“ R”以旋转两次。然后按Ctrl-S保存。将显示两个窗口,一个是典型的文件对话框,第二个是JPEG压缩(如果GoPro的默认格式是JPEG)。我会确保质量因子至少为90%。然后保存文件;您应该可以按Tab键或Alt-S进行保存。可能会出现一个“您确定”类型的对话框(可能可以将其关闭)。然后,只需按空格键即可前进到文件夹中的下一个文件。如果您有50多个文件,则批处理可能会更快。十个文件,我就是做上面的。
Irfanview的关键在于它类似于Blender,它不会询问您是否要保存是否修改图像。
你知道GIMP吗?有一个名为BIMP的插件,可让您使用图形界面对一组图像执行相同的操作。您可以使用Windows的官方安装程序轻松安装它。
您也可以将它们重新保存为其他格式或不同的压缩率,以免质量损失很大。
专业提示:我做到了:D
ImageMagick是一组在图像上运行的命令行工具,您可以将这些工具与基本的Unix Shell命令结合使用,以将同一命令应用于一组文件。如何使用imagemagick旋转目录中的所有图像有很多很好的例子?。
您可以使用LiveBlox并构建管道以允许旋转图像。http://liveblox.org上的演示版具有旋转块,因此可以完成此操作。
有一个教程https://www.youtube.com/watch?v=kY0e5msQuiU ,其中显示了如何制作批处理图像缩放器,您只需要用旋转器替换固定大小的调整大小即可进行旋转。
这使您只需单击即可处理每个图像。
$表示* jpg中的F;转换-rotate 180 $ F“ $(basename $ F .jpg)_R.jpg” && echo“ Done $ F”; 做完了
说明:*对于命令的.jpg部分中的F,会将文件名分配给变量,此变量可稍后调用以将文件重命名为[原始文件名} _R.jpg
在“做转换-rotate 180”告诉计算机,你想你的图像转换,通过旋转180度。
命令的“ $(基本名称$ F .jpg)_R.jpg”部分指示新的文件名。
该&&告诉计算机比其他命令来了,但该计算机只允许如果先前(旋转和重命名)命令成功执行的命令。
echo“ Done $ F”告诉计算机告诉您(“ echo”告知您)每个文件已成功旋转。该命令的$ F子部分正在调用初始文件名变量,因此输出可能会说出“ Done file1.jpg”的效果。
而且,需要sh / csh / bash才能使这部分工作。
*_R.jpg
目录中已经有文件,则无法按预期工作。