イメージGetNダイアログを作成
GetN, イメージダイアログ このセクションではXファンクションのGetNダイアログを行列画像と共にプレビューする為のダイアログを作成します。これは、ダイアログのコントロールと画像のプレビューを起動する、画像のプレビューを更新する、ファイアログのコントロールをプレビューに反映するなどが含まれます。 
  
空のGetN イメージプレビューダイアログを作成する
	- Xファンクションビルダを開くためにF10キーを押してください。
 
	- Xファンクション編集ボックスに「ImageBox」と入力して、Xファンクションの名前にします。
 
	- 変数リスト上で右クリックし、「変数の追加」を選択していくつかの変数を追加します。変数の名前、ラベル、他の値を次の画像と同じになるように入力します。 
	 
	
 
	- Xファンクションビルダのツリービューボタン
 をクリックしてツリービューに移動します。「使用のコンテクスト→メニュー」にある「自動GetNダイアログ」のドロップダウンリストで「GetNImageBox」を選択してから保存ボタンをクリックしてXファンクションを保存します。 
	- Xファンクションビルダを閉じ、新規行列ウィンドウを開きます。メニューから「ファイル→インポート→イメージファイルを行列へインポート」と操作してイメージファイルを選択し、行列ウィンドウにイメージをインポートします。
 
	- 行列ウィンドウをアクティブにしたままコマンドウィンドウで「ImageBox -d」を実行します。GetNイメージプレビューダイアログが開きます。
 
 
Xファンクション, 
 コードビルダでコーディングコードビルダでXファンクションをコーディングする
	- Originのコードビルダを開き、メニューからファイル→開く、と選択して先程保存したXファンクションを見つけて開きます。開くダイアログで「ワークスペースに追加」にチェックがついている事を確認してからOKをクリックします。ImageBox.XFCがOriginCワークスペースビューのユーザフォルダに追加され、編集ビューに関数のボディを表示します。
 
	- //put additional include files here行の後に、次のような行を追加します。 
	 
	
//put additional include files here
#include <image_utils.h>
#include <..\Originlab\matdata_utils.h>
          
	- //put your own support static functions 
	 here と入力された行の下に、以下のようなstatic関数を追加します。 
	
//サポート目的のstatic 関数をここに入力
static bool _adjust_image_brightness_ex(BITMAPHANDLE* pPreviewBitmap, TreeNode& 
trGetN, bool& bOKEnable, string& strErrMsg)
{
        int nRet = adjust_image_brightness(pPreviewBitmap, trGetN.level.nVal);
 
        if( SUCCESS != nRet)
        {
                bOKEnable = false; //イメージの調整に失敗するとOKボタンを無効化
                strErrMsg = "Fail to adjust image brightness"; // エラーメッセージの文字列
                return false;
        }
        return true;    
} 
 
Xファンクション, 
 イメージダイアログ Init イベント関数GetNImageBox_OnInit イベント関数
このイベント関数はGetNイメージプレビューダイアログが開いた時に呼び出されます。これはイメージのプレビュー、ダイアログのコントロールを起動する時やOKボタンの有効化/無効化で使用できます。例えば、次のコードをGetNImageBox_OnInit 
 関数に追加してレベルコントロールの値を元に画像の明るさを変更するようにします。 
// イメージプレビューコントロールからビットマップのハンドルポインタを入手
pBITMAPHANDLE pPreviewBitmap = pimgCntrl->GetBitmapHandlePtr();     
 
// 内部関数を呼び出してイメージを調整
_adjust_image_brightness_ex(pPreviewBitmap, trGetN, bOKEnable, strErrMsg);
 
Xファンクション, 
 イメージダイアログ OnChangeイベント関数GetNImageBox_OnChange イベント関数
このイベント関数はグリッドがユーザによって変数された時に呼び出されます。これはダイアログコントロールで変更になったイメージプレビューを更新する時、ダイアログのコントロールを他のコントロールが変更になったところで更新する時、あるいはOKボタンの有効化/無効化について更新する時などに使用します。以下のコードをGetNImageBox_OnChange関数に追加してください。 
// 内部関数を呼び出してイメージを調整。イメージプレビューを更新するにはtureを返す
bUpdatePreview = _adjust_image_brightness_ex(pPreviewBitmap, trGetN,
                 bOKEnable, strErrMsg);
 
メイン関数
メイン関数は対応するXファンクションと同じ名前を有します。以下のコードをメイン関数に追加してコンパイルボタンをクリックします。 
// ビットマップハンドルポインタを入力イメージから出力イメージへコピー
bool bCopy = true;
oimg.SetLBmp(iimg.GetLBmp(), bCopy);
 
// 出力イメージからビットマップハンドルポインタを入手
pBITMAPHANDLE phBmp = oimg.GetLBmp();       
 
// 調整
adjust_image_brightness(phBmp, level);
 
Xファンクションの使用 Xファンクション, 
 実行
	- コマンドウィンドウで「ImageBox -d」を実行し、このXファンクションのダイアログを開きます。レベルコントロールの値を変更してプレビューの明るさが変更する事を確認します。
 
	 ボタンをクリックしてテーマコンテキストメニューを開き、名前を付けて保存をクリックした後に「mylevel」としてテーマ名ボックスに入力します。そしてOKをクリックしてテーマファイルを作成します。キャンセルを押してXファンクションダイアログを閉じます。 
	- コマンドウィンドウで「ImageBox -d -t mylevel」を実行し、Xファンクションをダイアログを指定したテーマで開きます。
 
 
             |