任意のブレンディングを使用して半透明の PNG を単色でオーバーレイし、アルファを維持できるようにしたいと考えています。
私はこの解決策を知っています:
残念ながら、DestinationIn / SourceOut / Mask はすべて、アルファ領域に顕著なビジュアル アーティファクトを表示します。これは、グラフィックを重ねる場合に特に顕著です。
Core Graphics を使用する以外に、CIMultiplyCompositing でアーティファクトを表示しない CoreImage を試しましたが、他の Core Graphics ブレンド モード (スクリーンやオーバーレイなど) に対応するフィルターはありません。
GPUImageも使用しましたが、同じ視覚的アーティファクトに遭遇しましたが、これはライブラリのバグのようです。