というわけでbmpファイルを大量に吐き出すプログラムを作ってるんだけど、これは別のプログラムに読み込ませる為に作成してるわけ。
ところがこれがせっかく作ったbmpファイルを読み込んでくれない。なんてこった。
ってことは、だ。パレット数が少ないとかなんとかってことがあるのか?
ということでファイルサイズを見てみると、手本のファイルが900MB位なのに対して1200MB位の出力してる。
はぁぁんなにごとー。えーちょっとまてよ。bitmapのsaveメソッドにそんな指定するところないぞ。imageformat見てもbmpとしか指定がないぞ。けええ。
ということで、ぐぐる。
http://asuka-diary.at.webry.info/200912/article_6.html
はーうっそー。どうやら欲しいのは24bitRGBのデータなのにアルファチャンネル付きの32bitしか出力しないの?しかも荒技が必要とかどういうことよ。
テクはないので仕方がない。32bit bmpで出力して別ソフトで変換だ。出来るからこれでもいいけど、糞PCなんで変換遅い遅い。やってらんないなぁ。。。。
ちょっと待てよ。しかしそんな不便なのありなのか?まっとうな方法がないわけがないだろう。
ということでさらに深く具ぐる具ぐる。
有った。。。。
http://msdn.microsoft.com/ja-jp/library/3z132tat.aspx
というか最初にbitmapをコンストラクトするときに PixelFormat を指定したらそのままbmpファイルになるんだ。えーまじか。
ペイントソフトとかでセーブするときにフォーマット指定するじゃん。あーゆーことできんわけ?
てことはナニか?そういうことしたかったらダミーのbitmapオブジェクトを作ってそこにコピーしてからセーブってか?はぁ。
てなわけで、
Bitmap bittomappu = gcnew(640,480, Sys(ryaku)::format24bpppRgb);
で解決。
描いてる絵がなんなのかちゃんと意識しろってこってすね。はいはい。