省型旧形国電の残影を求めて

戦前型旧形国電および鉄道と変褪色フィルム写真を中心とした写真補正編集の話題を扱います。他のサイトでは得られない、筆者独自開発の写真補正ツールや補正技法についても情報提供しています。写真補正技法への質問はコメント欄へどうぞ

ImageJ / Python プログラミング Tips: ImageJ が読み込める スクリプトコードの長さに上限行数がある

 先日、不均等黄変ネガ写真の追加機能の試作を色々試していたところ、突然以下のようなメッセージが出て、実行エラーになりようになりました。

 

java.io.IOException: Mark invalid

 

 ネットで調べると、Java の何かデータを保存しておくバッファが足りないようなので、バッファを増やせばよいというようなアドバイスはありましたが、どうも要領を得ません。ImageJ 上ではそのような問題が出たというような報告は見つかりません。

 1, 2時間程度、情報を探したり、ああでもない、こうでもないと悪戦苦闘しましたが、やっと原因を見つけました。結局このバッファとは、ImageJ が読み込むプログラムコードのバッファだったのです。分かったことは ImageJ は 2407行までのコードは読み込めますが、プログラムコードの長さがそれを超えると上記エラーが出るのです。

 プログラムにいろいろ機能を詰め込んでいたら、コードの長さが 2400 行を超えてしまったので上記エラーが出てしまっていたのでした。こんなに長いコードを書くアホは世界に他にいないので、誰も気づかない or 問題にしていなかったのでしょう。ImageJ 上で読み込めるコードの上限を増やすオプションがあるかと探してみましたが、見当たりませんでした。

 結局とりあえずデバッグのために残していたデバッグ用のコードを取り除いたり、コメント行を削除して行数を減らして対処しましたが、あまり必要のなくなった機能などを取り外して、コードのダイエットを図ることが必要なようです。