【Processing 2】クリックで画面のキャプチャを保存できるようにする

プログラミング

こんにちは。さっしみーです。

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 の Preferences ウィンドウ

上の場合ですと,「ホームディレクトリ/書類/Processing」に,今回作成したスケッチの名前のフォルダーがあって,そのフォルダーの中にキャプチャ画像が保存されると思います。

おわり

ということで,Processing 2で,ウィンドウをクリックしたら,現在の日付・時刻に応じたファイル名でキャプチャを保存するようにする,ということについて書いてみました。

参考になりましたら幸いです。

読んでいただき,ありがとうございました!

うごメモ風に言うと,「閲覧 Thanks!」って感じでしょうか(← 急に思い出した(笑))

それはさておき(?),このへんで失礼します。ありがとうございました!

コメント

タイトルとURLをコピーしました