日曜日, 6月 05, 2016

Processingで画像を読み込みたいけどファイルの数や名前が分からない場合

課題

Processingで大量の画像を読み込んで処理したかったのだけど、標準のloadImage()を使おうとするとファイル数やファイル名が予め分かっていないといけない。つまり画像ファイルを追加したり削除したりすると、それに合わせてコードも修正しなければならない訳で、保守性も効率も悪い。

解決法

JavaにFilenameFilterというインターフェースがあるので、新しくクラスを作ってacceptメソッドをオーバーライドする。

import java.io.File;
import java.io.FilenameFilter;

public class PngFileFilter implements FilenameFilter {
  @Override
  public boolean accept(File directory, String fileName) {
    if(fileName.endsWith(".png")) {
      return true;
    }
    return false;
  }
}

PngFileFilterクラスのインスタンスを作り、こんな感じでFileクラスのlistFilesメソッドに渡すと、".png"で終わるファイルが配列として返ってくる。ちなみにdataPath("")という関数を使うとdataフォルダまでのパスが取得できる。空の文字列を渡しているが、フォルダがある場合はその名前を指定できる。リファレンスに載っていないのである日突然なくなる可能性はある。

File[] imageFiles;
PngFileFilter filter;
void setup() {
  size(800, 800);
  filter = new PngFileFilter();
  imageFiles = new File(dataPath("")).listFiles(filter);
  for(File file: imageFiles) {
    println(file.getName());
  }
}

RubyとかPythonだと特定のフォルダ以下のアセットを特定の拡張子で読み込むのが簡単なので、ああいう感じの書き方にできるとより便利。他の言語や環境から学ぶことは沢山ある。

Link list 2016-05

FathomのMITでの授業

https://fathom.info/4s50/index.html

Drawing vector field

https://generateme.wordpress.com/2016/04/24/drawing-vector-field/

The Center for Genomic Gastronomy - Studying the biotechnologies and biodiversity of human food systems.

http://genomicgastronomy.com/

Killer Queen

http://killerqueenarcade.com/ 10人で遊ぶアーケードゲーム。めちゃくちゃ面白いらしい。

Conservation

https://github.com/REAS/studio/wiki/Conservation Casey Reasによるソフトウェアアートの保護について。ソースコードはガイドであって作品ではないと言っている。

MUSIC SIGNAL PROCESSING

http://www.ee.columbia.edu/~dpwe/e4896/outline.html

元Redditの人が作った荒れないコミュニティサービス

http://www.wired.com/2016/05/imzy/ 複数の人格を使い分けながら匿名性を保つ設計

渋滞のシミュレーション

http://www.traffic-simulation.de/

棒の手紙

http://homepage3.nifty.com/hirorin/bonotegami.htm 不幸の手紙がエラーを起こしながらコピーされる様子

Study for Fifteen Points – Random International

http://www.creativeapplications.net/science/study-for-fifteen-points-random-international/

Jller – Industrial automation and historical geology

http://www.creativeapplications.net/processing/jller-industrial-automation-and-historical-geology/

Study for Fifteen PointsとJllerはコンピュータを介した表現でありながらスクリーンから出るヒントを示している。正確さが強度を持つ。

土曜日, 4月 30, 2016

Link list 2016-04

Why Small Data Is the New Big Data

http://knowledge.wharton.upenn.edu/article/small-data-new-big-data/
ビッグデータの逆でスモールデータって何かあるのかなと思って調べたらあった。今考えてることとリンクしそうな気はする。

Citizen Engineer

http://citizenengineer.org/

AI制御可能なカメラ搭載ドローン

http://gethover.com/

財務大臣になって財政改革を進めよう

http://www.zaisei.mof.go.jp/game/yosansinario/ 黒字化するには増税しかない絶望的なゲーム(Undoもできない)。科学技術振興に全然お金使ってない。

オープンデータのインパクト

http://okfn.jp/2016/04/09/case-united-states-new-york-city-business-atlas/

パナマ文書の技術的側面

https://medium.com/@c_z/d10201bbe195#.ss7zr89bx

スペキュラティヴ・デザインが拓く思考 ──設計プロセスから未来投機的ヴィジョンへ

http://10plus1.jp/monthly/2016/04/issue-01.php

音を解析してクラスタリングしてリミックスしやすくするツール

http://www.thewire.co.uk/in-writing/interviews/play-the-musicmappr-sampling-app

ZOMBIE-CHANG

http://omake-club.com/artist/zombie-chang.html 「蓮沼執太メロディーズ・ツアー2016」で初めて聴いた。リリース音源もかっこいいけど全体的にローファイでチープな印象なので、あの日のライブの時みたいにクリアかつ太い音でもっと聴きたい。

Taking a line for a walk

https://medium.com/@williamngan/taking-a-line-for-a-walk-6fd947acb227#.i9m4d538k

UnityでCreative Coding

https://www.youtube.com/watch?v=7bPQ9L0hvXM&list=PL64OnOdZ_3NGD4qvRucx7BpKUZ-IqGc0Q

JOLIN RAS / WLOVE FM (valentines special)

http://samplinglove.blog94.fc2.com/blog-entry-2605.html いいMix

Fathomが始めたポッドキャスト

https://fathom.info/ebd/

トレードマークとシンボル集

http://trademarksandsymbols.com/