多くの写真のサイズをバッチで変更する方法-ただし、タイムスタンプはそのままにしますか?


2

多くのフォルダに何千枚もの写真があります。たとえば、最長のディメンションで3000pxにバッチサイズを変更し、タイムスタンプをそのまま保持したいと思います。

私はすばらしくシンプルなツールPhatchを使用してすべてのファイルのサイズを変更しましたが、ファイルの元のタイムスタンプはなくなり、Patchにはこれを回避する設定はありません。これで、すべてのオリジナルを含むマスターフォルダーと、Phatchの結果を含む別のフォルダーができました-これが役立つ場合に備えて。

  • プラットフォーム:Linux(Ubuntu)
  • ソースファイル:多くのサブフォルダーにある2000個のJPGファイル
  • ターゲット:3000pxにサイズ変更(既にそれより小さい場合を除く)
    • 所定の場所でファイルのサイズを変更する
    • または同じフォルダ構造を使用してコピーとして保存する
    • 元のファイル名とタイムスタンプをそのまま保持する

私は(まだ)使用できるツール(imagemagick?mogrify?)を知るほどLinuxの人ではありませんが、どのようにヒントを喜んで受け入れます!


touchタイムスタンプをサポートします。古いファイルがまだあるため、日付が分類された古いファイル名があります。この情報とタッチを使用してスクリプトを作成することができます。(ただしENOTENOUGHCOFFEEなので、ATMを書いていません)。
ヘネス

うーん、それは私の未熟な手に夜のコーディングの価値があるように聞こえます。Welp、それが私が学ぶ方法です!
トーベンGundtofte・ブルーン

回答:


3

パッケージimagemagickからの変換を使用して、/ tmp / newまたは同様のディレクトリに新しいファイルを入れて、次のようなことができます。

mkdir /tmp/new
find . -iname '*.jpg' |
while read file
do convert -resize '>3000x>3000' "$file" /tmp/new/"$file"
   touch -r "$file" /tmp/new/"$file"
done

結果に満足したら、次の方法で移動します。

rsync -a /tmp/new/ .
rm -fr /tmp/new

読み取り中のファイルの+1 .... touch -r "$ file" / tmp / new / "$ file"部分。それは別のプログラムでも動作し、変換するはずです。(または既に変換されたファイルを使用)。
ヘネス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.