タグ

ImageMagickに関するmatsuboboのブックマーク (2)

  • xargsで並列処理してCPUを100%使い切ろう

    背景 6000枚の画像を一括変換したかったので。普通にmogrifyを打つだけだと1プロセスなので1コアしか使ってくれないです。最近のPCは1コアの周波数を低めにして、多くのコアを積んで処理を並列に動かすことによって高速化を行うのが主流です。 アプローチ ちゃんと全てのコアを使い切って変換をする必要があります。xargsコマンドを使うと並行処理を簡単に行えます。-Pで並列数、-nで1コマンド辺りの引数の数を指定します。-nは無くても良いですが1コマンドの起動コストを減らすために指定してあげるのが良いです。ファイル名に半角スペースが入っている場合があるので、find側に-print0オプションと、xargs側に-0オプションを指定しています。 % find . -type f -print0 -name '*svg' | xargs -0 -n 5 -P 8 mogrify -format

    xargsで並列処理してCPUを100%使い切ろう
  • 並列に、再帰的に、EXIF情報を消すコマンド

    ImageMagickのmogrifyコマンドをつかいます。mogrifyコマンドは、元のファイルを変更して上書き保存します。 たとえば、カレントディレクトリ以下のjpgファイルから、EXIF情報を消す。 しかも、4並列で行う場合。 % find . | grep ".jpe\?g$" | xargs -t -n 10 -P 4 mogrify -strip core i7の8コアで処理した場合は、CPUがこんな感じで使われます。

    並列に、再帰的に、EXIF情報を消すコマンド
  • 1