2011-08-17 17 views
1

私はRGBコンポーネントでは完全に白で、RGBA形式では0xFFFFFF09などのアルファ値が変化しています。しかし、このイメージをUIImageまたはCGImage APIでロードしてからCGBitmapContextで描画すると、RGBコンポーネントがアルファの値に設定された状態でグレースケールが出力されます。上の例では、ピクセルが出力されます0xFFFFFF09の代わりに0x09090909。したがって、透明性が変化する白であると思われる画像は、基本的に黒で透明になります。読み込んでいるPNGファイルに何も問題はありません。さまざまなグラフィックスプログラムがすべて正しく表示されます。私のピクセルの色を変更するUIImage/CGImage

これは私のkCGImageAlphaPremultipliedFirstの使用と関係があるかどうかは疑問でしたが、CGBitmapContextCreateが他の値で失敗するため、実験できません。

ここでの究極の目的は、glTexImage2Dを使用してテクスチャにアップロードできるピクセルデータを取得することです。私はiOS APIを完全にバイパスするためにlibPNGを使うことができましたが、他の提案はありますか?どうもありがとう。

+0

この質問は既に古くなっていますか?そうでない場合は、問題を再現するためにサンプルプロジェクトに画像をロードするコードを提供できますか? – Kjellski

+0

オファーに感謝します。私はこれを理解することができませんでしたので、CGImage APIの使用を中止し、直接libpngで画像をロードしてください。 – RedMarbleGames

答えて

0

アルファのxを持つ黒い背景の白は、すべての成分のxに対応するグレイ値です。乗法混合がどのように機能するか

+1

答えをくれてありがとうございますが、これは、*乗法混合なしでファイル*から読み込まれたデータの整合性をどう維持するかという問題に実際には触れていません。このグラフィックを画像エディタに読み込むと、徐々に退色する白い画像になります。まったく灰色ではありません。しかし、iOSはデータがロードされるとそれを変更します。それは私が避けようとしているものです。 – RedMarbleGames

関連する問題