Processingで画像を保存する方法

Processing

みなさん,こんにちは
おかしょです.

Processingで作った作品を画像として保存する方法について解説します.

この記事を読むと以下のようなことがわかる・できるようになります.

  • Processingの画像保存方法
  • プログラムの描き方

この記事を読む前に

この記事ではProcessingで作った作品を保存することが目的なので,作品は作ってあるものとして解説をしていきます.

まだ作品を作ったことがない方やプログラムの書き方がわからない方は以下の記事で解説しているので,そちらを先に読んでおくことをおすすめします.

保存するプログラム

Processingで画像保存をするには以下のプログラムを,自分で作ったプログラムの一番下に貼り付ければOKです.

int count=1;

void keyPressed(){
  if(keyCode == ENTER)
  {
    save("image"+count+".jpg");
    count++;
  }
}

このプログラムを貼り付けることで,「ENTER」キーを押すと画像を保存することができます.保存先は現在のプログラムが保存されている フォルダ と同じところに保存されます.

このプログラムでは,最初にint型の’count’と言う変数を定義し, 「ENTER」キー が押されるたびに数値が上がるようにしています.このようにすることで,保存する画像が上書きされるのを防ぐことができます.

「ENTER」キー が押されたことが検知されると,if分内にあるsaveコマンドが実行されます.このコマンドはその名の通り,現在表示されているウインドウを保存することができます.

saveコマンドの引数にはファイル名を入れます.このときに拡張子を付けずに実行するとTIFFとして保存されます.上のプログラムではjpgとして保存していますが,pngも使用することができます.

保存できないとき

上記のプログラムを自分で作ったプログラムの一番後ろに貼り付けて,実行してから 「ENTER」キー を押しても画像が保存されないことがあります.その際に考えられる原因は以下の3つです.

  1. ウインドウが選択されていない
  2. 保存先を勘違いしている
  3. keyPressedをすでに使用している.

1. ウインドウが選択されていない

Processingのプログラムを実行すると自動的にウインドウが表示されます.通常通り実行すれば,ウインドウが選択された状態になるので問題ないのですが,まれにウインドウが選択されないことがあります.

このようなときに 「ENTER」キーを押しても画像を保存することはできません.このようなときはウインドウがちゃんと選択されていることを確認する,もしくはウインドウのどこでも良いのでクリックをしてから 「ENTER」キーを押すことで画像を保存することができます.

2. 保存先を勘違いしている

画像が保存できない場合,単純に保存先を勘違いしていることが考えられます.先ほども言いましたが,画像はプログラムが保存してあるフォルダ内に保存されます.

プログラムが保存されているフォルダをエクスプローラーでしっかり確認をしてみてください.

3. keyPressedをすでに使用している

この場合は実行すらできないので気が付くと思いますが,この場合は上のプログラムを貼り付けるだけでは実行することができません.

このような場合はプログラムのkeyPressed関数内のプログラムをコピーしてすでにあるkeyPressed関数内に貼り付けます.そして’count’の宣言(int count=1;)をプログラムの先頭に貼り付けます.

さらに,keyPressed関数内で「ENTER」キーを既に割り当てている場合は,ほかのキーに変更する必要があるので注意してください.

まとめ

この記事ではProcessingで画像を保存する方法について解説しました.

上記のプログラムでは「ENTER」キーが押されると保存されるようにしましたが,決してloop関数内にsaveコマンドを入れないようにしてください.loop関数内に入れてしまうと,実行されている間ずっと画像が保存され続けるので,膨大な量の画像が保存されることになってしまいます.

続けて読む

このブログではほかにもProcessingを使った作品の作り方などを解説しています.気になる方は続けて読んでみてください.

Twitterでは記事の更新情報や活動の進捗などをつぶやいているので気が向いたらフォローしてください.

YouTubeでも制御工学や電子工作などの解説をしているので,ぜひのぞいてみてください.

それでは最後まで読んでいただきありがとうございました.

コメント

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