トップページ > 記事閲覧
乗算済みアルファにおけるSoftImage
名前:tozica 日時: 2019/03/31 14:19

いつもお世話になっております。 表題の件についてなのですが、 SetUsePremulAlphaConvertLoad(TRUE) を実行した状態で LoadSoftImage でソフトイメージを作成すると、 どのような画像であってもアルファ付き画像として読み込まれてしまうという現象に悩まされております。 ----- SetUsePremulAlphaConvertLoad(TRUE); int h = LoadSoftImage(_T("xxx.png")); bool is_pallete = CheckPaletteSoftImage(h); bool is_alpha = CheckAlphaSoftImage(h); ----- 上記のようなプログラムにおいて256色PNGを与えた場合、 is_pallete = false, is_alpha = true となってしまいます。 不具合か仕様か分からないのですが、回避策などありましたらご教示いただけますと幸いです。 よろしくお願いいたします。
メンテ

Page: 1 |

Re: 乗算済みアルファにおけるSoftImage ( No.1 )
名前:tozica 日時:2019/03/31 22:04

すみません、いくつか補足です。 ・Windows環境で動かしています ・DxLibのバージョンは最新(3.20c)です ・上記プログラムで SetUsePremulAlphaConvertLoad(TRUE) をコメントアウトした場合は、256色PNGが正しく認識されます よろしくお願いいたします。
メンテ
Re: 乗算済みアルファにおけるSoftImage ( No.2 )
名前:管理人 日時:2019/04/01 02:13

SetUsePremulAlphaConvertLoad(TRUE); の設定ではどのような画像でも アルファ付き画像になるのは仕様となります 乗算済みアルファの画像として読み込まれたくない画像を読み込む場合は 事前に SetUsePremulAlphaConvertLoad(FALSE); を実行する、では何か問題があるのでしょうか?
メンテ
Re: 乗算済みアルファにおけるSoftImage ( No.3 )
名前:tozica 日時:2019/04/01 23:39

なるほど、仕様として、SoftImageに対しても「乗算済みアルファ」の処理が適用されるのですね。 ありがとうございます、了解しました。 一応、こちらの都合としては ・読み込んだ画像が256色PNGかどうかで処理を分けたい ・描画処理では基本的に乗算済みアルファを扱いたい(MakeScreenとアルファ付き画像を併用したいため) というニーズがあったため、上記のような質問をさせていただいたのでした。 ご提案いただいたように、 256色PNGかどうかの判別の際だけ SetUsePremulAlphaConvertLoad(FALSE) を設定するか、 事前に256色PNGかどうかを分かるようにしておいて処理を分けるか、 なにか適当な回避策を採りたいと思います。 ありがとうございました。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存