2013年02月

今まではトンボデータでテストして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はどうにもこうにも。

このエントリーをはてなブックマークに追加 mixiチェック

による連番ファイル出力の画像形式はPSDのみだった。1枚1枚ならTIF,PNG,BMP,TARGAと多彩だけど連番は何故かPSD固定。
…まぁいいけど。確かに何か一つ、と言われればPSD。
あと、mdpsファイル内に定義されてるmdpファイルとファイル名の対応は無く、連番になる。そりゃそうか。

このエントリーをはてなブックマークに追加 mixiチェック

が出てきたので使ってみる。発熱はするんだが2時間位で冷えてしまう。
まぁ通勤途中だけ使えれば使命は果たせるのでのこり9個も使おう。
早く使いきらないと春になってまた1年眠らせる事になってしまう。

このエントリーをはてなブックマークに追加 mixiチェック

identify A01.tif
A01.tif[0] TIFF 8688x6168 8688x6168+0+0 1-bit Bilevel Gray 1.874MB 0.000u 0:00.000
A01.tif[1] TIFF 160x113 160x113+0+0 8-bit sRGB 1.874MB 0.000u 0:00.000

白黒1bitで大体2MBか。昨日の調査によるとやっぱ今回は一旦PNGにしてそれを
mogrify -type Grayscale -compress LZW -format tif *.png
でTIFFにするしか方法が無いか。

そういえば何故かあの時のTIFFにはサムネイルが付いてた。多分PSDを入力にしたからだろうな。ComicWorksからの書き出しも余計なものが入らないPNGが安全だろう。PNGPNGTIFF

このエントリーをはてなブックマークに追加 mixiチェック

最終的に出力される画像の色数や圧縮形式が、バージョンやQ16/Q8、アロケート時にxc:noneかxc:whiteか、入力画像の色数、透明度の有無、出力形式がTIFFPNGか、で変わって明示的に指定出来ぬ。
欲しいのは2値のTIFFなんだけど、今のところわかった生成ルートは以下の通り。本当はmogrifyは使わずJMagickで完結させたかったんだが良く判らぬしもうこれでいいわ。
・ImageMagicのバージョンは6.8.3 Q8を使用。
・アロケート時には白のxc:whiteを指定。xc:noneだと透明。透明部分があると挙動が変わる。
・入力ファイルに透明度が付いていてもいなくても良いように、CompositeのオペレーションはCopyではなくDarkを使う。Copyすると入力ファイルが透明度ありだと透明度もコピーされてしまうので。意外に速度は変わらず。
・出力形式がPNGの場合は、256色グレイスケールパレットなPNGとなる。
・出力形式がTIFFの場合は、32bit透明度ありのフルカラーなTIFFとなる。何も指定しないと無圧縮なので200MB。事前にImageInfoのCompressにLZWを指定すると小さくなるがこの場合、Windowsのビューワでは見えず、Paintgraphic2 Proデリーター コミックワークスNEOで読もうとすると落ちる。
・上記で作成したPNGを mogrify -type Grayscale -compress LZW -format tif *.png で変換すると白黒2値LZW圧縮TIFFとなる。これは普通のツールでも読める。
・またJMagickで作った妙なフルカラーLZW圧縮TIFFを mogrify -type Grayscale -compress LZW -format tif *.png で変換するとグレイスケールLZW圧縮TIFFとなる。これは普通のツールでも読める。
 ちなみにJMagickでPNGを出力するのとTIFFを出力するのでは掛かる時間が40秒近く異なる。TIFFの方が速い。色数も違うしJMagickというかImageMagickの挙動は訳判らないな。
 JavaFXでのGUIの皮だけは出来てるし、面付けは以前のプログラムと同じアルゴリズムでOKだから、JMagickがスレッドセーフか否か以外は大体要素技術はクリアになった感じ。CPU使用率を見るとコア数+1位が良さげ。後はヨーカドーのコニカミノルタ bizhub C353CSで印刷テストして形式を決める。

このエントリーをはてなブックマークに追加 mixiチェック

最近は治まっていたんだけど、土曜あたりから今度は左胸がじわじわと痛む。骨がズキズキでは無いので割と平気。

このエントリーをはてなブックマークに追加 mixiチェック

 んで、目下の課題は、いかにして2値モノクロLZW圧縮TIFFを出力させるか、である。イトーヨーカドーのコピー機はPDF,JPG,TIFFしか受け付けないのだ。まぁ最悪、PNGで出力して最後に

mogrify -type Grayscale -compress LZW -format TIF *.png

で一括変換という技もあるにはあるが無駄な時間だし。ちなみに今、JMagicからTIFFを吐くと無圧縮フルカラー32bitの200MBのファイルとなる。
昔のMLにそれっぽい話を発見
http://permalink.gmane.org/gmane.comp.java.jmagick/842

i'm using jmagick 6.0.4 and trying to create a image with the following  
properties:
-colorspace GRAY -normalize -gamma 1.4 -compress LZW -mime tif

here`the code:

     ImageInfo imageInfo = new  ImageInfo("D:\\imageprocessing_js\\sonnenuntergang.jpg");

     MagickImage image = new MagickImage(imageInfo);

     image.setFileName("D:\\imageprocessing\\sonnenuntergang.jpg");
     imageInfo.setColorspace(ColorspaceType.GRAYColorspace);
     image.normalizeImage();
     image.gammaImage("1.4");
     image.setMagick("TIFF");

     byte[] blob = image.imageToBlob(imageInfo);

     image.blobToImage(imageInfo, blob);
     image.setCompression(CompressionType.LZWCompression);
     imageInfo.setCompression(CompressionType.LZWCompression);
     image.setImageAttribute("compression","LZW");
     image.setFileName("D:\\imageprocessing\\newimage.tif");
     image.writeImage(imageInfo);

これだけあちこち指定してもLZW圧縮かからないそうな。リプライ無いし。
まぁさすがに6年後の今の最新版なら直ってるだろうと

    imageInfo.setCompression(CompressionType.LZWCompression);

にあたる処理だけ実装して実行したら、なにやら小さめのTIFFが出た。が、大きさから判断してこれはまだフルカラーだ。
しかもWindows XPのプレビューは表示できず、Paintgraphic2 Proで読み込むと落ちる。

このエントリーをはてなブックマークに追加 mixiチェック

 今までは6.3.9-Q16を使っていて5分掛かっていたが、手順をちょっと変えてとどめに6.3.9-Q8を使うように変更したところ15秒になった。調子に乗って最新版の6.8.3-1-Q8にしたところ60秒と遅くなった。*1その後更に手を入れて40秒に。
 ただし、同一処理後に吐き出すPNGが6.3.9では無駄にフルカラーなのに対して、6.8.3-1では正しく2値なのでここは最新版の方を使う事とする。バグとかも減ってるだろうし。遅いのはおそらく内部の8bitデータをそのまま吐かずに1bitにパックしてるから。
 挙動を見たところ、どうも画像のロードやアロケートを、APIで呼び出した時にその場では行わず、実際に使う時になってから確保するっぽい。全体処理が遅い割にはロードやアロケートAPIからの戻りが異常に速いし、読み込んだ画像の情報をトレースに出すのをやめただけで処理が先に進むのが速くなったし。あと遅延ロードのような事もしているのか、左記の情報出力でのブロックを止めると全体の処理時間が10秒も縮まった。1枚読んでは情報出力、もう1枚読んでは情報出力、その後実際の合成処理とシリアルに動いてた所が一部同時実行されたのではなかろうか。
 それにしてもバージョン変えると挙動が変わるのは困りもの。コマンドラインのオプションも統一感無いし何でこんなへんてこなImageMagickがメジャーなんだろうと思ったりもするけど、マクロ機能付きのGUIツールは色々あれど、コマンドライン主体の画像処理ソフトって他に無いからかな。特にLinux

*1:6.3.9-Q8にあるJMagic8bit版で、最新版のImageMagic8bit版のDLLが利用できた。

このエントリーをはてなブックマークに追加 mixiチェック

前も調べたけど忘れるのでWeb日記に記載
※以下はすべて600dpi前提

原稿用紙全体サイズは4961×7039
Aの位置は(330,485)、Bの位置は(4069,6555)。
A3横サイズは9922 × 7016
B4横サイズは8588 × 6071
つまり
A3版下作るには、左ページは右端330ピクセル、上12ピクセル、下12ピクセルをカット、右ページは左端330ピクセル、上12ピクセル、下12ピクセルをカットして、二つを中央で張り合わせる。左右が330ピクセル分不足だが、印刷時に中央あわせでOK.
B4版下作るには、上記の処理であわせた画像を左右662ピクセル、上下484ピクセルカット。
※JMagickの場合は、cropした画像も原点はcrop前を保持するので注意。
※出力装置によっては用紙一杯の大きさのデータは印刷範囲を超えるので勝手に縮小してモアレる事があるので、上下左右をさらにカットする方が良いかも知れない。

このエントリーをはてなブックマークに追加 mixiチェック

「これは酷い」と以前ネットで評判だったのでわざわざ探して読む。そいえば昔、映画館にガンドレスを見に行って切符売り場で「未完成ですよ」と売り子さんに念を押された上に後日のビデオ引換券貰ったっけな。ビデオは結局貰わなかったが…。

赤い糸切れちゃうよ・・・。上巻 (萌え萌え文庫)赤い糸切れちゃうよ・・・。上巻 (萌え萌え文庫)
雨隠流 雪月華 とばり

エヌオーワンセブン 2011-04-22
売り上げランキング : 931191

Amazonで詳しく見る
by G-Tools
うむ。噂に違わずこれは酷い。東京忍者〈総集編〉 (富士見ファンタジア文庫)とかまだまだ普通のプロの仕事だな。しかし一応最後まで耐えて読んだのでプリンセス・プラスティック―母なる無へ (講談社ノベルス)よりは…マシ…というか一応現代日本の話だから脳への負荷が小さかったのかも。
レーベルが「萌え萌え文庫」という酷い名前だけどまぁそれは流すとして、まず物理的に酷い。紙がね。普通の文庫本で使われてる薄くて柔らかいあの文庫書籍紙じゃなくて、何だろうな、70kg位の上質紙みたいな厚くて堅い謎の紙。表紙も何か妙なテカり具合に盛り具合だし。フォントも異常に大きいし、ポプルスあたりで刷った文庫型同人誌みたいだ。
内容はあちこちで言われてて今更だがいつか天魔の黒ウサギ1 900秒の放課後 (富士見ファンタジア文庫)よりも更に奇妙な文体。高校の同級生男女8名が夏休みにミステリーツアーに参加して謎の事件に巻き込まれる…らしいんだけど、8人のメンバーを集めるだけでページにして130P、本の中頃だ。参加者も名前も行動も地味でしかも嫌な奴ばかり*1で誰が誰だか判らん。絵美ちゃんがちょっとヤンデレっぽい位?今は宇宙人未来人超能力者程度は居て当然、只のラブコメでも出会ったその夜にはヒロインが木刀を携えて主人公の寝首を掻いて殺しに来る有様なので、我侭でいい加減な男が130ページも学校の教室を回って友人に参加を頼むのに付き合うのは退屈極まりなく。しかも当日一人遅刻したがためにツアーには参加できず。その後、主人公が突然死ぬ。Anotherなら死んでた勢いで唐突に死ぬ。なんだこりゃー。多分、丁度今、深夜にやってるアニメ版のアムネシアみたいな事をやりたいのだろうな。

*1:ちなみに主人公が一番嫌な奴という

このエントリーをはてなブックマークに追加 mixiチェック

↑このページのトップヘ