その漫画自炊オタクはImageJマクロに恋をする

プログラミングを用いた、自炊漫画の画像処理

【Tool解説】漫画自炊に便利なツールバーのカスタマイズ

 

f:id:yu3xx:20200624020741j:plain

 

ImageJでは、Tool barを自分好みにカスタマイズすることが出来ます。

 

f:id:yu3xx:20200522021937p:plain

 

f:id:yu3xx:20200522045918p:plain

マクロに関する命令をまとめてリスト化すると便利

 

...なんですが、設定方法の説明が公式ページからはわかりづらいし、他のインターネット上でも拾いにくいので、ここでまとめてみました。

 

ちょっとややこしい説明が続きますが、ツールバーをカスタマイズすることでストレス無く快適に作業が出来るようになります。

 

少しでも興味がありましたら、眠たい目を擦りつつお付き合いください。

 

 

 

 

Startup Macros.txtを編集

 

ツールバーをカスタマイズするには、「Startup Macros.txt」というファイルを探して編集します。

f:id:yu3xx:20200522023319j:plain

[Plugins]→[Macros]→[Startup Macros...] でファイルを開くことができます。

 

この「Startup Macros.txt」は、ImageJを起動した時に毎回自動インストールされるマクロを設定するためのファイルです。このファイル内に、複数のマクロを設定しておくことができます。

 

つまり、Tool barカスタマイズのためには「Startup Macros.txt」内にToolを規定するマクロを幾つか書いておけばOK! ということになります。

 

 

3つのTool

 

ImageJには以下の3種類のToolがあります。

 ① Image Tool

  Toolアイコンをクリックしてから、画像をクリックすることで動作開始する。

 

 ② Action Tool

  Toolアイコンをクリックするだけで、動作開始する。

 

 ③ Menu Tool

  Toolアイコンをクリックするとリストが表示され、リストから命令を選択すると動作開始する。

 

この3つを使い分けながら、コードを書いていきます。

 

 

Toolを規定するマクロのお約束

 

Image Toolの例 

macro "hogehoge Tool - C07fO00ffT5d12Y"{
	getCursorLoc(x,y,z,flags);
	print(x,y);
}

クリックした画像位置のxとyを表示するという地味な命令です。

 

Image Toolの基本形は

macro "マクロ名 Tool - どんなアイコンにするか"{

 

Action Toolは

macro "マクロ名 Action Tool - どんなアイコンにするか"{

 

Menu Toolは

macro "マクロ名 Menu Tool - どんなアイコンにするか"{

 (Menu Toolはもう少しお約束があるので、後で解説します)

 

となります。 

 

この「どんなアイコンにするか」の書き方がこの記事のキモです。

 

まとまった説明がインターネット上でも少ない上に、少し面倒な作業でもあるのですが、私のように「漫画自炊が三度の飯と同じぐらい大好きだ!」という物好きな方なら大丈夫だと思います。

 

 

どんなアイコンにするか?

 

上の例ではC07fO00ffT5d12Yという謎の英数字の羅列が書かれていますが、この文字列によって、

 C07f → Color(色)の(r,g,b)が(0,7,f)

 O00ff → Oval(円)の位置とサイズ(x,y,ヨコ径、タテ径)が(0,0,f,f)

 T5d12Y  → Text(文字)の位置・サイズ・何の文字か(x,y,サイズ,文字)が(5,d,12,Y)

の3つの命令がなされています。

 

位置や色設定の数値は16進数 (0-15) で表記するので、

  0 → 0

  9 → 9

 10 → a

 15 → f

となります。

 

※Colorの(r,g,b)はそれぞれの値に16をかけて、(0〜255)の範囲で表現しているようです。

 

 

ですので上記の文字列は、青っぽい色で、円を描いて、さらにYを描く。という命令になっています。

 

f:id:yu3xx:20200522034358p:plain

C07fO00ffT5d12Y が表現しているアイコン

 

命令のパターンは他にもあるので、以下でまとめておきます。

 

アイコンに関する命令の一覧

 Bxy → ベース位置

 Crgb → 色(red,green,blue)設定

 Dxy → ドットを打つ

 Fxywh → 塗りつぶし四角形を描く

 Lxyxy → 線(始点→終点)

 Oxywh → 円を描く

 Pxyxy......xy0 → 多角形を描く

 Rxywh → 四角形を描く

 Txyssc → 文字を描く

 

  x,y...位置、w,h...タテ径ヨコ径、r,g,b...色、ss...フォントサイズ(9なら09)、c...文字

 

これらの命令を用いて、自分の好きなアイコン(16×16 px)をある程度自由に作成することが出来ます。便利ですけど、すごくややこしいですね!

 

 

 

 Menu Toolは少し基本形が独特ですが、パターンなので知っておくと簡単に使えます。

var Cmds = newMenu("マクロ名",newArray("命令1","命令2","命令3"));

macro "マクロ名 Menu Tool - どんなアイコンにするか" {

  cmd = getArgument();

  run(cmd);

}

 

命令1〜3の具体的な命令コード(大文字小文字の違いも大事)がわからない場合は、実行したい動作をMacroのRecord機能([Plugins] → [Macros] → [Record...])で記録して調べると確実です。

 

 

さいごに:Startup Macrosの例

 

最後に、私が使用しているStartup Macrosを参考として載せておきます。

 

ややこしい設定なんてめんどくせぇ!という場合は、まるまるStartup Macrosに上書きコピペするのもアリです。

 

ただし、Macro Menu Toolの命令で指定している「マクロの名前(Almighty Processingとかのあたり)」は、自分で所持しているマクロの名称でコード入力しなければならないので、ご自身の環境に合わせて変更して使って下さい!

 

//StartupMacros

//My own macro
//ver1.1.0

//ROI Manager launcher
macro "ROI Manager Action Tool - C356O13ffT5f10MT0207RT7207OTf207I"{
	run("ROI Manager...");
}



//create 100*100 ROI
macro "Specify Tool [Create 100*100 ROI]- C222o0244ob244L2ccc"{
	getCursorLoc(x,y,z,flags);
	run("Specify...", "width=100 height=100 x=x y=y centered")
	setTool("rectangle");
}



//Macro Menu Tool
var dCmds = newMenu("Macro Menu Tool",newArray("New Macro...","Edit...","Startup Macros...","Record...","-","Almighty Processing","Optimize minAndMax","MoveFiles makeDirAuto","Integrate ReverseScan multiTitle","-","BookJacket Processing","Renumbering from1","FileRename andCopy"));
macro "Macro Menu Tool - Ca59T0309MT9708aTf509cT2c10rT7f09o" {
	cmd = getArgument();
	if (cmd == "New Macro...") cmd = "Macro";
	if (cmd != "-") run(cmd);
}



//Define Popup menu (Right click)
var pmCmds = newMenu("Popup Menu",newArray("Brightness/Contrast...","Size...","Rotate 90 Degrees Right","Rotate 90 Degrees Left","Specify...","-","Help..."));
macro "Popup Menu" {
	cmd = getArgument();
	if (cmd == "Help..."){
		showMessage("About Popup Menu","To customize this menu, edit the line that starts with\n\"var pmCmds\" in ImageJ/macros/StartupMacros.txt.");
	}else{
		if (cmd != "-") run(cmd);
	}
}

 

※ Popup Menuについて

上では解説しませんでしたが、ポップアップメニュー(画像上で右クリックで起動)の中身もStartup Macros内でいじることが出来ます。これもお好みに設定しておくと気持ちイイです。

f:id:yu3xx:20200522043436p:plain

Popup Menu

 

 

 

おしまい

 

 

 以下宣伝です。

 

・ImageJ インストール法


・基本処理を凝集した、使い勝手の良い万能系

 

・ImageJマクロの基礎知識