0

私は iOS 開発の初心者です。グーグルで調べたところ、画像全体をぼかすのは簡単ですが、長方形や円形などの画像の特定の部分をぼかすのは難しいことがわかりました。では、画像全体ではなく画像の特定の部分をぼかすにはどうすればよいですか?

前もって感謝します。

4

1 に答える 1

1

画像全体をぼかしてから、気になる部分を切り取ります。非長方形/非シャープなエッジのぼかしにはマスクを使用できますが、トリミングをスキップしないでください。

Core Image の魅力的でありながら難しい点は、非常に怠惰であることです。最初から最後まで機能しません。これはプル モデルのようなもので、最後に要求したものから元のラスターにまでさかのぼります。さらに、要求していないピクセルを実際にフィルタリングすることはありません。

したがって、あなたの場合、トリミングとは、トリミングの外側のぼやけたピクセルを要求しないことを意味します。あなたがそれらを求めていないので、それらはぼやけません。ぼかしは、必要なピクセル (クロップ内のピクセル) に対してのみ実行されます。

マスキングの動作は異なります。定義上、マスク イメージのすべてのピクセルを確認する必要があります。ソースのすべてのピクセルも確認しない場合 (0 を乗算する場合でも) は驚くでしょう。これが、マスクを使用してもトリミングする必要がある理由です。

画像のぼやけてトリミングされた部分は、元の画像の場所のままであることに注意してください。コストがかかるため、画像内のピクセルをコピー/移動しません。代わりに、範囲が異なる画像、つまりトリミング用の四角形を返します。その範囲を取得し、画像を描画する座標からその原点を減算するか、アフィン変換フィルターを使用する必要がありますが、これもおそらくコストがかかります。

于 2012-12-10T19:35:29.153 に答える