12th October 2021 at 8:50pm
表示の更新を止めることで、マクロを高速化することができます。(20倍近い)
setBatchMode(true); //バッチモードON
setBatchMode(false); //バッチモードOFF
setBatchMode("exit and display"); //バッチモードをOFFにして、すべてのディスプレイを表示する画像ウィンドウが消えている時のマクロの振る舞いには気を付けなくてはいけません。
例えば以下のマクロを実行してみてください。
//setBatchMode(true); //※1
open("★★★適当なファイル画像名1★★★");
rename("src1");
open("★★★適当なファイル画像名2★★★");
rename("src2");
selectWindow("src1");
//setBatchMode(false); //※2
//setBatchMode("exit and display"); //※3selectWindow("src1");が無ければ「src2」がアクティブになります。
次に、※1のコメントアウトを外してください。 何も表示されないと思います。
次に、※2のコメントアウトを外してください。 「src1」のみ表示されたと思います。
次に、※2をコメントアウトして、※3をコメントアウトを外してください。 「src1」が前面で(アクティブで)、「src1」と「src2」ともに表示されています。
つまり、非表示中でもマクロ関数であるselectWindow()は思った通りに動いているようです。
ただし、マクロやAPIによっては非表示状態で正常動作しないものもあるようなので気を付けてください。
例えば、API関数であるIJ.getImage()は、非表示状態の画像は取得できません。
何回か実行した際に作成された非表示の画像がどうなったのかはよく分かりません。
恐らく破棄されているのではないかと思いますが、メモリーを気にする場合は「close()」を実行した方が安全だと思います。