1

RGB コンポーネントが完全に白で、アルファが変化する画像があります。たとえば、RGBA 形式では 0xFFFFFF09 です。しかし、UIImage または CGImage API を使用してこの画像をロードし、CGBitmapContext で描画すると、RGB コンポーネントがアルファ値に設定されたグレースケールになります。つまり、上記の例では、ピクセルが出力されます。 0xFFFFFF09 の代わりに 0x09090909。そのため、さまざまな透明度を持つ白であるはずの画像が、代わりに透明度のある本質的に黒になります。読み込んでいる PNG ファイルに問題はありません。さまざまなグラフィック プログラムですべて正しく表示されます。

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

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

4

1 に答える 1