GUIKit`
GUIKit`

"IndexedImagePanel"

GUIKitで提供されていた機能は,組込みのWolfram言語にネイティブのインターフェース構造およびコントロール関数で利用できるようになった.

Widget["IndexedImagePanel"]

指標付きの画像パネルを表す.

詳細

  • Widget["IndexedImagePanel"]を使用する際は,まずNeeds["GUIKit`"]を使って GUIKit をロードする必要がある.
  • デフォルトで,画像はパネルの中央にスケールされないで表示される.画像がパネル全体を占めるようにスケールし直すことも可能である.
  • 使用可能な特性:
  • "imageWidth"1画像の幅
    "imageHeight"1画像の高さ
    "imagePixelSize"1ピクセルサイズ(整数)
    "imageColorMapSize"0カラーマップのサイズ
    "imageColorComponents"Nullカラーマップにおける各色のコンポーネントのリスト
    "imagePixels"Null各ピクセルの指標
    "preferredSize" 画像の表示サイズ
  • 使用可能なイベント:
  • "mouseClicked"パネル内の任意の点でマウスがクリックされた際にトリガされるイベント
  • 使用可能なメソッド:
  • InvokeMethod["getImagePixelCoordinatesAt", mouseEvent]マウスイベント位置の画像の座標を返す
  • デフォルトで,ほとんどのメソッドは自動的に再描画はしないので,最終引数としてTrueまたはFalseを取ってメソッドのバージョンを呼び出すことができる.これによって画像中のさまざまな場所に複数の呼出しを行ってからInvokeMethod[{panel,"repaint"}]を,または最終引数をTrueとしてメソッドを呼び出すことができる.

例題

すべて開くすべて閉じる

  (1)

すべてのピクセルを黒に設定し,5色の指標付きの色で5×5の画像を作る:

すべてのピクセルを白に設定する:

すべてのピクセルをランダム値に設定し,100回繰り返す:

各ループ内の最初の行のランダムなセルをランダムな値に設定して100回繰り返す:

画像を再描画して結果を見る:

"setImagePixel"の最終引数としてTrueを与え,先の2つのメソッドの呼出しを結合する:

ランダムな列をランダム値に設定して100回繰り返す:

格子を表示する:

格子の色をカスタム値に設定する:

(サイズ調整後に)パネルの大きさにフィットするように画像をスケールする:

縦横比は維持する:

画像の始点を変更する:

メソッド"fillImagePixels"は画像の個々のピクセルを塗り潰す:

メソッド"fillImagePixelArray"は明示的な位置の配列を塗り潰す:

また,始点{x,y}値と相対的なオフセット位置で与えられる領域も塗り潰す:

メソッド"fillImagePixelRect"は長方形の領域を塗り潰す:

"setImagePixelRect"とすると,領域を左上の位置で指定することもできるようになる:

インタラクティブな例題  (2)

各セルがクリックされるとランダムな色で塗り潰される画像を作成する:

数回クリックした後:

灰色の四角をクリックすると黒く,さらにクリックすると白と黒が交代する3色の画像を作成する:

ランダムに何度かクリックを繰り返した後: