ディスクに保存されている TIFF からバッファに画像データをロードしています。その後、このバッファを使用して OpenGL テクスチャを作成します。に書き込むことでデータを取得していますCGContext
。元の画像は、すべてのピクセルが 100% 白です。ピクセルごとに変化するのはアルファ値だけです。
に書き込むとCGContext
、透明ピクセルの色が保持されません。「なぜ透明なピクセルの色を気にするのですか?」とあなたは尋ねますか? 画像を拡大縮小すると、透明なピクセルの色が見えるようになり、醜い暗い輪郭のアーティファクトが作成されます。
データを からバッファに直接読み込み、CGImage
そのバッファを使用してテクスチャを作成しようとしましたCGImageGetDataProvider(image)
が ( を使用)、これは CGImage の色空間が RGBA の場合にのみ機能します。おそらく、CGContextDrawimage
ある色空間から別の色空間への変換を処理します。
CGContextDrawimage
透明なピクセルの色を保持する方法はありますか? それとも、別の方法で画像をロードする必要がありますか?