月曜日, 12月 11, 2006

「なでしこ」で全ピクセルの情報を表示

今日は、前にやった色情報の取得を画像の全ピクセルについてやってみる。といっても何百万画素もの巨大な画像の情報を表示させるのも大変だ。

そこで、まず画像を40×30=1200ピクセルぐらいに縮小し、この色情報を取得してみる。方法は、縦(Y)方向と横(X)方向に順番にスキャンして、対象となったピクセルの色情報を取得し、これを配列に入れていく。

問題は、この取得した情報の表示方法だ。配列の数が1200個もあるので、これを表示命令で画面に出すのは難しい。実は「なでしこ」には、こんな配列の情報を表示させるのにぴったりの仕組みがあるのだ。それは、表計算ソフトのようにグリッド形式で表示するという方法だ。

グリッド
http://nadesi.com/doc/reference/gui/7-0-grid.htm

では、さっそく試してみることにする。

//RGBリスト

Xsize=40; Ysize=30

表示("画像を選択してください")
画像WKとはイメージ; FN=ファイル選択(); 画像WKの画像=FN
画像リサイズ(画像WK,Xsize,Ysize)
表示("{ファイル名抽出(FN)} を 横={Xsize} 縦={Ysize} に変換しました")

RGBリスト="連番,X座標,Y座標,色コード"

N=0;Y=0
Ysize 回
 X=0
 Xsize 回
  N=N+1
  RGBリスト[N,0]=N
  RGBリスト[N,1]=X
  RGBリスト[N,2]=Y
  RGBリスト[N,3]=画像色取得(画像WK,X,Y)
  X=X+1
 ここまで
 Y=Y+1
ここまで

RGB表示とはグリッド; RGB表示のアイテム=RGBリスト

//ここまで



こんな、表計算のようなプログラムが、驚くほど簡単にできてしまう。凄い!