情報
概要
「画像合成」の不具合を修正した「画像合成改」です。
これで、透過色が黒色以外でも正常に動作します。
解説
命令「画像合成」の説明文には「OBJ1の左上の色を透過色として扱う」
とありますが、実際には透過色もORされてしまいます。
これはなでしこの不具合と思います。
画像合成命令の内部では
1)マスクを作る[画像マスク作成]
2)マスクでコピー先をくりぬく[画像ANDコピー]
3)コピー元を合成[画像ORコピー]
という手順で実行されるのですが、透過色が黒色で無い場合
2.5)逆マスクでコピー元をくりぬく = 透過色を黒色に変換
が必要です。
※sample-グラフィック-画像処理サンプル-キャラ合成-正統.nakoを参照
で、無いものは作るしかないということで「画像合成改」を作りました。
サンプルプログラム
ウィンドウ背景色で画面クリア
キャラ画像とはイメージ
その幅=32
その高さ=32
キャラ画像を青色で画面クリア
線色=黄色。塗り色=黄色。線太さ=1
キャラ画像の2,2から30,30へ円
90,80へ「画像合成」を文字描画
キャラ画像を母艦の100,100へ画像合成
描画処理反映
190,80へ「画像合成改」を文字描画
キャラ画像を母艦の200,100へ画像合成改
//本体
●画像合成改({グループ}Sを{グループ}DのX,Yへ)
Cとは整数
//マスク画像はSの透過色を黒色、それ以外を白色にしたもの
マスク画像をイメージとして作成
マスク画像→可視はオフ
マスク画像→画像はS→名前
マスク画像の0,0を画像色取得してCに代入
マスク画像をCで画像マスク作成
//ソース画像はSの透明色を黒色に変換したもの
ソース画像をイメージとして作成
ソース画像→可視はオフ
ソース画像→画像はS→名前
マスク画像を画像ネガポジ
マスク画像をソース画像の0,0へ画像ANDコピー
マスク画像を画像ネガポジ
//合成実行
マスク画像をDのX,Yへ画像ANDコピー
ソース画像をDのX,Yへ画像ORコピー
マスク画像→壊す
ソース画像→壊す
最終更新:2009年05月31日 17:27