ImageMagickの数値入力

ImageMagickの数値入力

次のように注文したjpgファイルでいっぱいのディレクトリがあります。

1.jpg
2.jpg
3.jpg
.
.
.
265.jpg

Windowsでは、このファイルをマージできます。順次、順番にファイルでscan.pdf使用する

magick %d.jpg[1-n] scan.pdf

njpgの総数はどこにありますか(私の場合は265個)。 MacOSでzshこれを試しましたが、 " no matches found: %d.jpg[1-n]"(再交換n)エラーが発生しました。試してみると

magick *.jpg scan.pdf

正しい順序で表示されません(確かに、数字順ではなくアルファベット順であるためです。)また試してみてください

magick [1-n].jpg scan.pdf

>9では動作しないようですn。 MacOS(およびLinux)のImageMagickで連続して名前を付けられた複数のファイルを結合する正しい方法は何ですか?

ベストアンサー1

%d拡張子です。 1つ目はファイル名参照、2つ目はフレーム/イメージの範囲です。セクションを参照してください[1-n]imagemagickファイル名を入力してくださいドキュメントから。このセクションには、水色で強調された例と詩が含まれています。

Linuxシェルは通常括弧を解釈するので、上記のファイル名を引用符で囲みます。 Windowsコマンドシェルでは括弧は解釈されませんが、引用符を使用しても問題はありません。ただし、ほとんどの場合、LinuxとWindowsでは一重引用符と二重引用符の役割が反対であるため、Windowsユーザーは通常、一重引用符を表示するたびに二重引用符を使用する必要があり、その逆も同様です。
magick 'images.gif[0-3]' images.mng

%d.jpg[1-256]シェルで引用されていない結果を使用すると、結果は、および%d.jpg1(読み取り)に展開されます%d.jpg2%d.jpg5%d.jpg6答えはここにあります説明のために)対応するファイル名がないため、エラーが発生しますno matches found
確実な解決策は、マニュアルに従って式を引用して、シェルがそれをそのままコマンドに渡すようにすることですmagick

magick '%d.jpg[1-256]' scan.pdf

シェルはglob修飾子を介してglobを数値的に整列させることができるため、次のことも機能する必要があることに言及する価値がありますzsh(n)

magick ./*.jpg(n) scan.pdf

.jpgただし、これを行うと、現在のディレクトリ内のすべてのファイルが処理されます(数値順にソート)。特定の範囲の値に拡張を制限するには、<m-n>一致するglob演算子を使用します。どのm以下を含む範囲の数字n

magick <1-256>.jpg(n) scan.pdf

おすすめ記事