これまでのところ、iOS で CGContextClipToMask の動作を複製しようとしています。CGContextClipToMask が内部でどのように機能するか知っている人はいますか? ドキュメントを読んだところ、画像のアルファ値にマスクのアルファ値を掛けるだけであると書かれているため、カスタム関数でこれを行っていますが、CGContext に通常のブレンディングを使用して結果の画像を複数回描画すると、結果はどんどん暗くなりますが、CGContextClipToMask では結果は正しく、暗くなりません。
私の理論では、CGContextClipToMask は画像とマスクに加えて、目的のコンテキストを何らかの形で使用して正しい結果を生成するというものですが、コア グラフィックスについて十分な知識がないだけです。
私はこの質問も読みました:
前乗算されたアルファなしで実際の RGBA または ARGB カラー値を取得する方法は?
この問題が発生している可能性がありますが、CGContextClipToMask は 8 ビット アルファで精度が失われる問題をどのように回避しますか?