処理された UIImage のコピーを作成せずに、ビューのコンテンツにのみ表示される静止画像を処理することは可能ですか? たとえば、実際のピクセルにピンチされたフルスクリーン ビューで 8 メガピクセルの画像があり、画面に表示されているものだけを処理したいと考えています。基本的に、コンテンツ (ほとんどの場合画像) をリアルタイムで処理する「ビューポート」が必要です。
ありがとう、トト
もちろん。やりたいことは、ソース イメージから GPUImagePicture を作成し、それを GPUImageCropFilter のターゲットにして、適用するフィルターに結果を渡し、その結果を GPUImageView に渡すことです。
クロップ フィルターを使用すると、画像の特定の領域を拡大できます。これらのピクセルのみが後処理フィルターに送信されて表示されます。GPUImageView に直接アクセスすると、最速の表示パスになります。
フィルターの設定が変更されたり、ソース イメージのトリミングされた領域が変更されたりすると-processImage
、GPUImagePicture を呼び出して、フィルター チェーンを介してこれらの更新を伝達する必要があります。トリミングされた領域に残っている画像のサイズ、実行しているデバイス、および適用しようとしているフィルターの強度に応じて、これにより、必要なリアルタイム パフォーマンスが得られるはずです。