web-dev-qa-db-ja.com

コマンドラインを使用してOS XでGIFファイルをPNGまたはJPEGに変換する方法

自動化できるように、できればコマンドラインを使用してPNGまたはJPEGに変換する必要のある10k以上のGIFファイルがあります。品質や透明性が失われる心配はありません。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

何か案は?

15
Sherzod

追加のツールは必要ありません。 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"' {} \;
35
slhck

かなり古い質問ですが、残念ながらslhckの解決策2は機能しません(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 homepage

2
Steve

GraphicsMagick または ImageMagick を確認してください。これらには、グラフィックファイルのあらゆる種類のマングリング(別の形式への変換などの退屈なものを含む)のためのコマンドラインツールがあります。

0
vonbrand