こんにちは。さっしみーです。
Processing 2で,ウィンドウをクリックしたら,現在の日付・時刻に応じたファイル名でキャプチャを保存するようにする,ということについて書こうと思います。
以下では単に「Processing」と記述しますが,今回は Processing 2 を使っています。Processing 3では違うかもしれないし,違わないかもしれません…。ご勘弁くださいませ。
使うクラスを import する
java.text.SimpleDateFormatクラスとjava.util.Calendarクラスを使いますので,インポートします。
import java.text.SimpleDateFormat;
import java.util.Calendar;
使いたい日付・時刻のフォーマットを定める
プログラムのどこか(たとえば,setupメソッドの中とか…?)に次のような文を書きます。私は import 文の真下に書きました。
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd-kkmmss-SSS");
"yyyyMMdd-kkmmss-SSS"
の部分は,好きなように書き換えて大丈夫です。(詳細はJavaの公式ドキュメント(ここ とかでしょうか…?)をご覧いただければと思います。)
"yyyyMMdd-kkmmss-SSS"
ですと,たとえば 2020年6月14日の午前1時56分23秒841 が 20200614-015623-841
のようになります。(最後の SSS(841の部分)は,ミリ秒の数字です。)
クリックしたときの処理を書く
Processingでは,ウィンドウの上をクリックしたときの処理は void mousePressed()
メソッドに書けばいいので,簡単で助かりますね。
次のように書くと,クリック時の日付・時刻が入ったファイル名で そのときのウィンドウのキャプチャ(PNG形式)を保存することができます。
void mousePressed() {
Calendar cal = Calendar.getInstance();
saveFrame(String.valueOf(sdf.format(cal.getTime())) + ".png");
}
ここまででたぶん動きます。
これで,「ウィンドウの上でクリックしたら,クリックしたときの日付・時刻が入ったファイル名で,ウィンドウのキャプチャを保存する」という処理ができたと思います。
どこに保存されるのか
ちなみに,どこに保存されるかというと,(上記コードのままだと)(たぶん)スケッチブックのフォルダー(ソースコード〘pdeファイル〙を保存した場所)の中になるかと思います。
スケッチを保存していない場合は,キャプチャ画像は どこにも保存されないかも…。少なくとも私の環境では,Processingのアプリを開いて,そのままコードを書いて(保存をせずに)実行して,ウィンドウの上をクリックしたところ,キャプチャが保存されている様子は見られませんでした。
ですので,スケッチを保存した上で実行してみてください。
スケッチ(プログラム)を保存した場所がわからないとき
スケッチを保存した場所がわからないという場合は,ProcessingのPreferencesを開いて,Sketchbook location(下の写真のピンクの枠のところ)を確認なさるのがよろしいかと思います。
上の場合ですと,「ホームディレクトリ/書類/Processing」に,今回作成したスケッチの名前のフォルダーがあって,そのフォルダーの中にキャプチャ画像が保存されると思います。
おわり
ということで,Processing 2で,ウィンドウをクリックしたら,現在の日付・時刻に応じたファイル名でキャプチャを保存するようにする,ということについて書いてみました。
参考になりましたら幸いです。
読んでいただき,ありがとうございました!
うごメモ風に言うと,「閲覧 Thanks!」って感じでしょうか(← 急に思い出した(笑))
それはさておき(?),このへんで失礼します。ありがとうございました!
コメント