我有 10k+ 个 GIF 文件需要转换为 PNG 或 JPEG,最好使用命令行,这样我就可以自动完成。我并不担心质量或透明度的损失,只需要为 OCR 软件准备文件。
当尝试使用时convertformat
,我得到了这个:
Error in pixReadStreamGif: function not present
Error in pixReadStream: gif: no pix returned
Error in pixRead: pix not read
Error in pixGetDepth: pix not defined
Error in pixWrite: pix not defined
有任何想法吗?
答案1
无需任何额外的工具。OS X 有sips
,它可以将图像转换为(几乎)任何格式。
例如,要将所有转换.gif
为.jpeg
,将它们放入名为的文件夹中jpegs
:
mkdir jpegs
sips -s format jpeg ./*.gif --out jpegs
或者,使用 递归地转换它们find
,这将在其旁边放置一个与 GIF 同名的 JPEG 文件。
find . -iname "*.gif" -type f -exec sh -c 'sips -s format jpeg "$0" --out "${0%.gif}.jpeg"' {} \;
答案2
我看到了一个相当老的问题,但不幸的是 slhck 的解决方案二对我来说不起作用(OS X Mountain Lion,bash)我收到一个错误。
这个对我有用(cd my_dir_with_gif
当然是在命令之后):
for i in *.gif; do sips -s format jpeg "${i}" --out "${i%gif}jpg"; done
如果你还想设置 jpg 压缩([low|normal|high|best|<percent>]
)
for i in *.gif; do sips -s format jpeg -s formatOptions 100 "${i}" --out "${i%jpg}png"; done
对于其他格式,您应该更改扩展名(记住 sips jpg 格式始终是jpeg
,扩展名可以是.jpg
)
这使用sips
更好的 ImageMagick。这是一个很棒的工具,我建议使用brew
以下方法安装它:brew 主页