2

任意のブレンディングを使用して半透明の PNG を単色でオーバーレイし、アルファを維持できるようにしたいと考えています。

私はこの解決策を知っています:

iPhoneで透明なPNG画像を着色する方法は?

残念ながら、DestinationIn / SourceOut / Mask はすべて、アルファ領域に顕著なビジュアル アーティファクトを表示します。これは、グラフィックを重ねる場合に特に顕著です。

違いの例

Core Graphics を使用する以外に、CIMultiplyCompositing でアーティファクトを表示しない CoreImage を試しましたが、他の Core Graphics ブレンド モード (スクリーンやオーバーレイなど) に対応するフィルターはありません。

GPUImageも使用しましたが、同じ視覚的アーティファクトに遭遇しましたが、これはライブラリのバグのようです。

4

1 に答える 1

0

問題の原因となっていた GPUImage のバグを見つけて修正しました。次に、すべてのブレンディングをシェーダーとして手動で実装しました。

于 2013-04-01T14:27:12.163 に答える