まずい!世が明けそうだ!
9時から仕事なのに、作成中のインクルードが思い通りに行かずこんな時間まで作業が難航してしまうとは。
インクルードの機能の一部として、
「画面の一部分だけちょっと黒っぽくする」
という状況が作りたくいろいろ試しました。
イメージとしては、範囲を指定できるColorFilterコマンドです。
もちろんColorFilterコマンドは画面全部をフィルタリングしてしまうので却下。
画面には常に画像が表示されている状態を想定しているので、
PaintPictureで画像を描く
↓
元画像にsx,sy,sw,shを指定してフィルタをかけて描く
ということで再現できると思いやってみました。
ばっちり成功です。
さてここで問題なのは、画像のサイズが一定でないことです。
汎用的なインクルードとして、画像のサイズを指定するのはありえません(そういう性質のものなのです)
かといって、SRCには画像ファイルのサイズを取得するコマンドはありません。
そこでインクルードの引数に元画像のサイズを入力してもらうことにしました。
とまあいろいろあってほとんど完成と言う状態で、
何故かSRCが落ちます
落ちるのは以下のコマンドを投げた時
PaintPicture Args(2) dx dy dw dh sx sy sw sh 保持 opt フィルタ WindowColor (Args(1) & "%")
<入っている値>
・Args(2)
Bitmap\Event\1.bmp(200×200)
・dx〜sh
50 280 150 180 50 0 150 180
・opt
透過
・WindowColor
#000000
・Args(1)
15<値を格納して書くと>
PaintPicture Bitmap\Event\1.bmp 50 280 150 180 50 0 150 180 保持 透過 フィルタ #000000 (15 & "%")
暇な方いらっしゃったらこのコマンド試してもらえないでしょうか。
画像は200×200(256色)のビットマップです。
画像の狙った部分だけフィルタする上でこの作業は必須なのですが、どうしょうも無いようなら全画面フィルタかけてくしかないですね。