png画像をDIBSectionに読み込み、
hdcバッファを通してダブルバッファリング。
画像の幅や描画位置もちゃんと反映できてる。
一先ずは上出来。
いよいよ問題のブロック照合比較及び、差分描画を
組んでみる必要があるが、アルゴリズムで悩む;
まずは差分判定の為にブロック走査を
極力最短処理に持って行く事を考えよう。
考えによると、四隅、四辺中央、四辺、中心部の順番で
ブロック内差異を判定すれば、判定が高速化するか?
差異が無い場合は最大時間かかってしまうが、
これは二つの画像の情報を持ってない状態から
思考するので判定上しょうがないのかも。
二つの画像が一致する、という事は逆に言えば
二つの画像が違わない事を証明する事であり、
その為に全てbitを判定走査せざるを得ない、かな?
無駄な考えの余談---
ブロックを二次元配列化して、例えばブロック[1]に
1ブロック内の全bit情報を配列化した後、
2つの画像の照合ブロック同士でXORをとり、
配列のスケールで0判定できれば一発確定かも。
但しLoadBitmapの仕様上、配置が超面倒な上、
可読性の面で無意味という感じ。
そもそもメモリ上の挙動が微妙に理解できてない;
四分木で高速化するならおそらくこの手法だとは
思いつつ。
更に余談---
差異を最初にマッピングして領域判定する事も
考えたんだが、領域が不定形なのでminやmaxを
取っても調べなくていい領域が多少増えるだけ、
空間分布をビットから逐一判定するのも冗長。
結局2つの画像情報を何も持たない状態から探査し、
処理が最短になるのは、
ブロック内で如何に早く差異ビットを見つけ、
その空間情報を保持させるかという結論に。
同日 17:23
しょーもないミスで時間食ったが複合描画まで完成。
たぬこに働いてもらう(藁
後は差異判定部分とブロック情報取得かな。
画像サイズ読み込みとブロックの動的確保も
考えなあかんが。
同日 18:40
サイズ取得及びブロック分割&画像差異判定による
ブロック分割部分引っぺがし関数完成。
判定はbit全走査で試したが、動いたわw
おおエロいエロい。
逆にすれば服を着るわけねw
後はブロック情報の動的確保と判定処理か。
同日 23:06
まずは四隅のチェック&ブロック動的確保完成。
ブロックの縦横の長さの指定も任意可変。
分かりやすくRectangleで描画してみたら、
マジで上手くハマッてキマシタワーw
見た目がウザイけどw
ちょっと買い物行ってから風呂入る。
3月31日 3:00
右クリック挙動の暫定ツール作成に取り掛かる。
こいつぁ初期化デバッグツールとして機能すりゃ
いいかなと思いつつ項目もあくまで暫定。
配置だけで中身は未設定なんで現状スッカスカ。
そろそろ今日は寝るか。