Macで、作成日に従って約2400 jpg
を並べ替えるにはどうすればよいですか(つまり、stat -f %SB
)ターミナル経由で、この順序で1つのPDFに変換しますか?
1つのjpg
が今日の午後11時10分に作成され、もう1つが同じ分の午後11時10分以内に作成された場合はどうなりますか?作成日の秒数は考慮に入れることができますか?
convert
を使用した簡単なコマンドラインが役に立ちます。次のコマンドライン(14個のpngファイルがあるディレクトリ)でテストしたところ、pdfファイルのページごとに1つの画像があります。
convert *.png out-parrot.pdf
convert
の一部のバージョンでは問題が発生する可能性がありますParrot4.4のconvert
のバージョンで意図したとおりに機能します
$convert --version
Version: ImageMagick 6.9.10-23 Q16 x86_64 20190101 https://imagemagick.org
ただし、Ubuntu 18.04.1 LTSのconvert
のバージョンでは機能しません(2019年2月まで)
$ convert --version
Version: ImageMagick 6.9.7-4 Q16 x86_64 20170114 http://www.imagemagick.org
このバージョンは、PDFファイルの書き込みが「許可されていません」
$ convert *.png out-ubuntu.pdf
convert-im6.q16: not authorized `out-ubuntu.pdf' @ error/constitute.c/WriteImage/1037.
$ apt-cache policy imagemagick
imagemagick:
Installed: 8:6.9.7.4+dfsg-16ubuntu6.4
Candidate: 8:6.9.7.4+dfsg-16ubuntu6.4
Version table:
*** 8:6.9.7.4+dfsg-16ubuntu6.4 500
500 http://se.archive.ubuntu.com/ubuntu bionic-updates/main AMD64 Packages
500 http://security.ubuntu.com/ubuntu bionic-security/main AMD64 Packages
100 /var/lib/dpkg/status
8:6.9.7.4+dfsg-16ubuntu6 500
500 http://se.archive.ubuntu.com/ubuntu bionic/main AMD64 Packages
Ubuntuメーリングリストを介して私は次の答えを持っていました(PDFへの変換はImageMagickの脆弱性の問題のためにオフにされました)
これは、特にUbuntu 18.04 LTSのImageMagick変換のバグですか、それとも意図的にオフにされたpdfへの変換ですか?
変更は意図的なものでした。 https://usn.ubuntu.com/3785-1/ を参照してください
ありがとう、ジェレミー・ビチャ
それはファイルシステムに依存します。たとえば、私のホストでは、4番目の拡張ファイルシステム(ext4)を使用しており、stat
はファイルについて次のように報告します。
$ touch foo; stat foo; rm foo
File: 'foo'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fc00h/64512d Inode: 262155 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ ownerusername) Gid: ( 1000/ ownerusername)
Access: 2017-06-21 14:28:16.150323827 -0700
Modify: 2017-06-21 14:28:16.150323827 -0700
Change: 2017-06-21 14:28:16.150323827 -0700
Birth: -
したがって、最終変更時刻を 作成時刻は誤称のようなものです として使用できます。
find /path/to/images -type f -print0 -name \*.jpg | xargs -0 stat -c "%y|%n" | sort | awk -F'|' '{print $2}'
このやや面倒な構成では、最終変更時刻順にファイルのリストが表示されます(名前に|
が含まれるファイルがない場合)。
このリストを確認して確認したら、Imagemagickのconvert
ツールを使用してPDFを組み立てることができます。
convert <<list of files>> outputfile.pdf
または、一度にすべてを実行するには:
convert $(find /path/to/images -type f -print0 -name \*.jpg | xargs -0 stat -c "%y|%n" | sort | awk -F'|' '{print $2}') outputfile.pdf
ImageMagickをインストールします。 JPG画像が~/images
にあり、ファイル名にスペース(または\[*?
)が含まれておらず、ディレクトリが~/combined
であると仮定します。
convert -combine -append $(ls -tr ~/images/*.jpg) ~/combined/all.jpg
または
convert -combine -append $(ls -tr ~/images/*.jpg) ~/combined/all.pdf
画像のサイズが同じでない場合は、警告が表示されます。 -append
は画像を上から下に結合します。 +append
に変更すると、画像が左から右に結合されます。
時間:ls -l
は時:分までの時間を示しますが、Linuxはアクセス、変更、および経過時間/変更時間をナノ秒まで追跡します。したがって、ls -tr
による並べ替えは、ほんのわずかな秒数を占めます。