なんだか雲行きの怪しい雑記帖

ぐだぐだ日記とメモと,あと不定期更新

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

HSPのPNG読み込みからgmode7で使える形式に

タイトルの通り、「HSPのPNG読み込み対応したけど、gmode7で使える形式になってない…から変換しよう」という話。
相変わらずPNG読み出しはライブラリがあるので、新規性を見てHSP内で完結する感じでやります。
 (実行自体はHSP単体でいけるであろうWinAPIやCOM等もライブラリとします。
  今回の趣旨は「ピクセル輝度値が分かったらα値とか計算するぜ!」なので)

結論から言うと式自体は簡単だったな、と、適当に。
精度についてはどうなんだろうな、最低限分からない程度ならどうでもいい派なのでそっちも適当。

この記事は今回やってみた手法? の中身とかアルゴリズムについての説明がメインとなります。


ちなみにネタ自体は既出で、HSPコンテスト2012でPNG2Gmode7というモジュールがでてます。
あちらは半透明部分が黒ずんでしまうとのことでしたが、まぁそれも考慮しつつやっていこう、という感じです。


先に結果だけドンするとこんな感じ
alphahsp_comp.jpg

元画像にちょっと嫌なデータを与えてみました。
色自体は右上から左下へ、色相を変えながらのグラデーション。
アルファ値は上から下に向かって小さくなるグラデーションになってます。

上図で確認できる通り、PNG2Gmode7だと下に行くほど色が暗くなっていってます。
で、今回やってみた方はPNG2Gmode7だと黒ずんでしまっているα値が小さい領域でも、なかなか元の色を復元できていることが確認できます。
 (サンプルの画像を処理させたところ、α値が0でなければなかなか怖い精度で復元してきます)

というか今回やってみたのは、このα値が小さいところで色が黒ずんでしまっているのを元にもどす処理をかませているというだけなんですが…
簡単に言うと「α値以外に元の色も計算してる!」ので、描画に使っても半透明な部分が黒ずまない的な。


追記@2017/10/31
下記のブログ様にて本記事の内容が高速化&モジュール化されておりました!
非常に内容纏まっていると思いましたのでリンク貼っておきます。
HSP | 透過 PNG で gmode 7 する (その2)

ということで、本記事の以降の内容はモジュール化されてない&処理内容についての簡易な言及のみとなりますので、「それでも見たい!」という奇特な方などはどうぞ~。

続きを読む
スポンサーサイト

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。