• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MacのAutomatorについて質問です。)

MacのAutomatorで画像フォルダからサムネイルを作成する方法とは?

このQ&Aのポイント
  • Mac OS 10.6.8を使用している方向けの解説です。
  • MacのAutomatorを使って、複数の画像フォルダからそれぞれの一枚目の画像を取り出し、サムネイルとしてまとめる方法について詳しく知りたいです。
  • 大量の画像フォルダがあるため、手作業では困難な作業です。効率的な方法があれば教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • ki073
  • ベストアンサー率77% (491/634)
回答No.5

No.4のスクリプト修正 ファイル名やフォルダ名に空白があったときに誤動作することを忘れていました。 下記に変更してください。最後の行が微妙に変わっています。 require 'jcode' $KCODE='u' str=gets(nil).split(/[\r\n]+/) dist="~/copy_files" str.each_with_index{|s, i| system "cp -n '#{s}' #{dist}/#{'%03d' % (i+1)}.jpg"}

sonic3150
質問者

お礼

本当にありがとうございます!! これでかなりの時間が削減できます!!! 本当に感謝です!! こんなに感謝してからで悪いのですが... .jpgが.JPGになっていた場合、読み込んでくれません。 これはリネームソフトを使うので、たいした事ではないのですが。 「夏休み」 「夏休み (2012)」 という二つのフォルダがあった場合、一つ目のワークフローでテキストにするときに 「夏休み (2012)」の方が一番下になってしまいます。 (「夏休み (2012)」フォルダは、名前順にしても一番下ではありません) これはなんでなのでしょうか?本当に図々しくてすいません!! しかも、間違えて質問を閉め切ってしまう始末... もし!本当にもし!上記の質問にご回答して頂けるのなら、メールを下さい。 本当にすいません! でも、この問題がある状態でも大変助かっています!!本当にありがとうございます!!

その他の回答 (4)

  • ki073
  • ベストアンサー率77% (491/634)
回答No.4

スクリプトその2です。No3でファイルができてから実行してください。 1) 自分の名前のついたフォルダ(Home)の直下にcopy_filesというフォルダを作成。ここにコピーされます。 2) Automatorで 「テキストエディット書類の内容を取得」 「シェルスクリプトを実行」 をならべ 「シェルスクリプトを実行」は シェル「/usr/bin/ruby」入力の引き渡し方法「stdinへ」 スクリプトを入れる所を消して、下記のスクリプトに変更 3)No.3で作成したファイルのリストをテキストエディタで開いて、他のテキストエディタのウインドウがあれば閉じておいてください。(テキストエディタの一番上のウインドウが対象のようですが、誤動作を防止するために) (ファイルは書き換えないようにしていますが、上記を確認後) 4) Automatorを実行 #スクリプト require 'jcode' $KCODE='u' str=gets(nil).split(/[\r\n]+/) dist="~/copy_files" str.each_with_index{|s, i| system "cp -n #{s} #{dist}/#{'%03d' % (i+1)}.jpg"}

  • ki073
  • ベストアンサー率77% (491/634)
回答No.3

AppleScriptのものが結構不安定でしたので、急遽作り直しました。 プログラムを2つに分けてあり最初の方です。コピーするファイルのリストを作るものです。 ファイルの絶対パスが書き出されます。その順番で連番をつけますので、テキストエディタ上で順番を入れ替えてることができます。 実行の仕方 1) ターミナルを使えるのでしたら、下記のスクリプトをprogram1.rbで保存して ruby program1.rb フォルダXのパス >出力ファイル.txt でできあがります。 2) Automatorを使う方法 Automatorでワークフローを作成 「Finder項目の選択を求める」 「シェルスクリプトを実行」 「新規テキストエディット書類」 の3つを順番にならべ、 「Finder項目の選択を求める」をタイプを「フォルダ」に変更 「シェルスクリプトを実行」は シェル「/usr/bin/ruby」入力の引き渡し方法「引数として」に変更 スクリプトを入れる所を消して、下記のスクリプトに変更 「実行」してフォルダXを選択 テキストエディタが開いて、ファイルのリストができあがります。 順番はお気に入りのように並び替えてください。 ファイルは「何たら0023.jpg」のようになっているもので、番号の一番若いものを探しています。 フォルダは変更日時順に並べるようにしています。 テキストエディタで並び替えたらそれを保存しておいてください。 もう少し便利にしてほしいところありましたら書き込んでください。 その2は後でアップします。ここで作成したリストをもとに、実際にコピーと連番をつけるソフトです。 #スクリプト require 'jcode' $KCODE='u' Dir.chdir(ARGV[0]) dirs=Dir.glob("*").select{|f| FileTest.directory?(f)} files=dirs.collect{|dir| Dir.glob(dir+"/*").select{|f| f[/\d.jpg$/]}}.reject{|dir| dir.empty?} files=files.collect{|fs| fs.sort_by{|f| f[/(\d+).jpg$/].to_i}[0]} files=files.sort_by{|f| File.ctime(File.dirname(f))} files.each{|f| puts File.expand_path(f)}

  • ki073
  • ベストアンサー率77% (491/634)
回答No.2

No.1のお礼欄について 改造はこちらでやりますので、1日程度お待ちください。 それとフォルダ1、フォルダ2、フォルダ3とありますが、実際には番号がついていますか? 画像1、山3、海6、夏休み20のような感じで(番号は飛んでいても良い)、数字を含んでいてそれにより並び替えることができるなら、もう少し楽になるのですが。 あるいはフォルダを作成した日付の順で良いのならそれで連番の順番の決めることができますが。

sonic3150
質問者

お礼

ありがとうございます!!! 図々しいようで本当にすいませんが、必ず数字が入っている訳ではないですね。 フォルダ1、2、3というのは名前順です。でも、リネームソフトを使って、フォルダ名の頭に数字をふっていけば大丈夫ですね。 しかし、数字をふった場合、フォルダ名が(例)「夏休み0820」から「003夏休み0820」などになったりして数字が二つ存在して面倒くさい事になったりしませんか? ちなみに作成日はバラバラで、名前順とは同じになりませんm(__)m わざわざ色々していただいて本当に感謝しています。

  • ki073
  • ベストアンサー率77% (491/634)
回答No.1

Automatorにあるライブラリだけでは無理だと思います。 フォルダの中の番号の一番小さいのを選んだり、連番をつけたりするのでちょっと高度です。 RubyやPythonで作るのが簡単なような気がします。 以前作ったAppleScriptですが、アプロケーションにドロップすると特定のフォルダにコピーして連番をつけてくれるのがあります。簡単なスクリプトです。若干改造する必要はあるのですが、こんなものでもよければスクリプトを掲示しますが。

sonic3150
質問者

お礼

回答ありがとうございます。 AppleScriptですか...よく知らないのですが、連番を付けてくれるだけでもとても助かります!欲しいです!! 自分は全くプログラミングが出来ないのですが、作れますかね?(汗)

関連するQ&A