今まではトンボデータでテストしてPNG経由すればTIFFは元が2値なら2値、グレイならグレイになってたが、実際の漫画データで面付けすると出力されるTIFが2値になったりグレイスケールになったりRGBAになったりバラバラで制御不能。
もう貴様には頼まん!CヒープからJavaヒープに画像のRAWデータを持ってきて、ねこら怒りの自前出力処理!…しようかと思ったけどそういえばImageIOはメモリリークするんだった、と昔の苦労を思い出したし、200MBが出たり入ったりじゃGCも激しかろうと思ったので、やっぱImageMagickの範囲で何とかする事を探る。ImageMagickユーザーインターフェースは言語道断だが、画像の読み書きの類はきちんとしていると考えている。いや単純に広く使われてるからというだけだけど。
結局、全部の画像をまとめたディレクトリで mogrify -monochrome -compress LZW -background white format -tif *.tif で全部白黒TIFに揃う。変換前の画像はPNGではなくTIF。変換の最終結果は同じなんだけど、実際の漫画データをJMagickで出力する際、PNGは3分30秒程掛かるのに対しTIFは30秒故。白黒変換前のTIFは一時的に1ファイル50MB程になり10個なら500MBになるが、まぁ漫画を描くのに使うようなコンピュータなら問題ないだろう…。段々怠け者になってくが。本当はJMagickで望みのフォーマットの画像ファイルを吐ければ良いんだが…。MagickImageのsetMagic()あたりが怪しいと思うんだがなぁ。JMagickのJavaDocはどうにもこうにも。