如何将给定文件夹中的所有文件(不同格式)转换为不同的文件类型
Posted
技术标签:
【中文标题】如何将给定文件夹中的所有文件(不同格式)转换为不同的文件类型【英文标题】:How to convert all files (in different formats) in given folder to different file type 【发布时间】:2013-02-25 06:47:15 【问题描述】:我有一个包含许多不同类型(png、jpg、jpeg、bmp、pdf)图像的文件夹,我想使用 imagemagick 将它们全部转换为 png(例如)。
是否有一个命令可以执行此操作?如果没有,我应该怎么做?
谢谢。
【问题讨论】:
或者如果你使用 python 看看这个:***.com/questions/2900035/… @MartijnvanWezel 您链接的帖子没有帮助。它详细说明了如何重命名文件,而不是如何完全重新格式化它。 @speedstyle oeww 讨厌,回到那些我真的不知道的日子......我会让我的指挥站起来,所以其他人会从错误中吸取教训。 【参考方案1】:试试mogrify
命令:
mogrify -format png *.*
但要小心。如果没有 -format
选项,mogrify
会覆盖原始图像。请务必阅读documentation。
【讨论】:
谢谢。我收到以下错误消息:C:\Users\Tal\s>mogrify -format png . mogrify.exe: 无法打开模块文件C:\Program Files (x86)\ImageMagick-6.8. 3-Q16\modules\coders\IM_MOD_RL_INI_.dll': No such file or directory @ warning/mo dule.c/GetMagickModulePath/683. mogrify.exe: no decode delegate for this image format
desktop.ini' @error/cons titute。 c/ReadImage/550。 (这很容易解决吗?)
那是因为mogrify
试图转换不是图像文件的文件desktop.ini
。您应该只将图像文件传递给mogrify
。删除desktop.ini
或将*.*
更改为仅与您目录中的图像文件匹配的通配符。您还可以针对每种文件格式多次运行该命令:mogrify -format png *.jpg
、mogrify -format png *.bmp
等。
我想将不同的图像文件类型合并到单个*.pdf
文件中。如何调整您的代码以使其正常工作?
我想我可以恢复使用其他工具,例如 pdftk
(例如,通过使用 pdftk *.pdf cat output combined.pdf
),但我宁愿使用单线来完成整个工作......
如果mogrify
与-format
选项一起使用,则不会替换文件,但会使用新前缀保存新文件。【参考方案2】:
虽然mogrify
似乎可以完成这项工作,但我想向您展示如何使用来自 ImageMagick 的 convert
的多个命令来完成这项工作。
我认为多个命令更好,因为文件类型的数量应该很少,您可以根据需要更好地调整它:
这个命令:
for file in *.xbm; do convert $file "`basename $file .xbm`.png"; done
将所有.xbm
文件转换为.png
,同时不接触xbm 文件。
然后你可以移动所有“转换”的文件:
mkdir converted
for file in *.xbm; do mv $file converted/; done
【讨论】:
如果文件名包含空格,则当前命令不起作用。解决这个问题的一种方法是for file in *.xbm; do convert "$file" "`basename \"$file\" .xbm`.png"; done
,但我觉得 bash 提供了一个更干净的解决方案。【参考方案3】:
您可以使用 ImageMagick 包中的convert
命令,例如
find . -maxdepth 1 \( -iname \*.png -o -iname \*.jpg -o -iname \*.jpeg -o -iname \*.bmp -o -iname \*.pdf \) -exec convert -verbose "" "DEST_DIR/.png" \;
或者,如果您将所有文件都放在同一个目录中,请尝试以下更简单的方法:
convert '*.*' converted_%04d.png
类似:How can I scale all images in a folder to the same width?
【讨论】:
以上是关于如何将给定文件夹中的所有文件(不同格式)转换为不同的文件类型的主要内容,如果未能解决你的问题,请参考以下文章
如何将给定的 Excel 文件转换为 Python 中的字典?