UITableViewCellで画像をぼかす際のパフォーマンスの問題

スチール

私はUIImageView私の習慣を手に入れましたUITableViewCell含まれている画像はぼやけている必要があります。私は知っていますがUIVisualEffectsView、まず第一にこれは以前は利用できずiOS8、第二に私のユースケースではぼかしが少し重いです。

それが私がこの解決策を思いついた理由です:

サンプルcellForRowAtIndexPath:

- (UITableViewCell *)tableView:(UITableView *)tableView
         cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *cellIdentifier = @"showCell";

    DEShowCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];

    if (cell == nil)
    {
        [tableView registerNib:[UINib nibWithNibName:@"DEShowCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:cellIdentifier];
        cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
    }

    [cell setBackgroundImageWithBlur:[UIImage imageNamed:@"sampleBanner"]];

    return cell;
}

私のカスタムセル:

-(void)setBackgroundImageWithBlur:(UIImage *)image {
    [self.backgroundImageView setImage:[self blurWithCoreImage:image]];
}

- (UIImage *)blurWithCoreImage:(UIImage *)sourceImage
{
    CIImage *inputImage = [CIImage imageWithCGImage:sourceImage.CGImage];

    // Apply Affine-Clamp filter to stretch the image so that it does not
    // look shrunken when gaussian blur is applied
    CGAffineTransform transform = CGAffineTransformIdentity;
    CIFilter *clampFilter = [CIFilter filterWithName:@"CIAffineClamp"];
    [clampFilter setValue:inputImage forKey:@"inputImage"];
    [clampFilter setValue:[NSValue valueWithBytes:&transform objCType:@encode(CGAffineTransform)] forKey:@"inputTransform"];

    // Apply gaussian blur filter with radius of 30
    CIFilter *gaussianBlurFilter = [CIFilter filterWithName: @"CIGaussianBlur"];
    [gaussianBlurFilter setValue:clampFilter.outputImage forKey: @"inputImage"];
    [gaussianBlurFilter setValue:@10 forKey:@"inputRadius"];

    CIContext *context = [CIContext contextWithOptions:nil];
    CGImageRef cgImage = [context createCGImage:gaussianBlurFilter.outputImage fromRect:[inputImage extent]];

    // Set up output context.
    UIGraphicsBeginImageContext(self.frame.size);
    CGContextRef outputContext = UIGraphicsGetCurrentContext();

    // Invert image coordinates
    CGContextScaleCTM(outputContext, 1.0, -1.0);
    CGContextTranslateCTM(outputContext, 0, -self.frame.size.height);

    // Draw base image.
    CGContextDrawImage(outputContext, self.frame, cgImage);

    // Apply white tint
    CGContextSaveGState(outputContext);
    CGContextSetFillColorWithColor(outputContext, [UIColor colorWithWhite:1 alpha:0.2].CGColor);
    CGContextFillRect(outputContext, self.frame);
    CGContextRestoreGState(outputContext);

    // Output image is ready.
    UIImage *outputImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return outputImage;
}

残念ながら、これをスクロールしようとすると、パフォーマンスに大きな問題が発生しますUITableView

だから私は私に回避策を尋ねましたか?いくつかのライブラリを使用して、ぼかすのGPUImageが速くなると思いますが、これが大きな違いを生むかどうかはわかりません。

UITableView約含まれています20-60行、私は思います。

キャッシングや他の何かのような他のアイデアはありますか?

ハウア

dynamic = NOに設定してFXBlurView使用します。それはまともなパフォーマンスを持っています。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

RecyclerViewの画像をダウンロードする際のパフォーマンスの問題

分類Dev

jQueryで動的CSSを追加する際にパフォーマンスの問題はありますか?

分類Dev

CSSで画像をフォーマットする際の問題

分類Dev

XAMLを作成する際のVisualStudioのパフォーマンスの問題

分類Dev

XAMLを作成する際のVisualStudioのパフォーマンスの問題

分類Dev

IQueryable.First()を実行する際のパフォーマンスの問題

分類Dev

副選択でn個の最新の行を選択する際のパフォーマンスの問題

分類Dev

パフォーマンスの問題、何が原因ですか?

分類Dev

HTMLでメソッドを呼び出す際のAngular2のパフォーマンスの問題

分類Dev

Laravel5.1でメールを送信する際のパフォーマンスの問題

分類Dev

Dynamics 365 CustomerEngagementで監査データを取得する際のパフォーマンスの問題

分類Dev

Oracleテーブルのレコードを更新する際のEntityFrameworkのパフォーマンスの問題

分類Dev

RGB画像をグレースケールC#コードに変換する際のパフォーマンスの問題

分類Dev

Androidアプリの開発にJavaを介してPythonを使用する際に起こりうるパフォーマンスの問題は何ですか?

分類Dev

大量のデータを挿入する際のHibernateのパフォーマンスの問題

分類Dev

Springの@Autowiredは大きなパフォーマンスの問題ですか?

分類Dev

Regd:ODACを介してOracleサーバーに接続する際のパフォーマンスの問題

分類Dev

並べ替え:このパフォーマンスの違いは実際のものですか、それとも何か問題がありますか?

分類Dev

オブジェクト参照を配列に保存する際のパフォーマンスの問題

分類Dev

DB接続チェックを実行する際のパフォーマンスの問題

分類Dev

NASAデータから地形をレンダリングする際のOpenglのパフォーマンスの問題

分類Dev

CSVから重複を削除する-パフォーマンスの問題

分類Dev

pysparkで階層順に行を取得する際のデータフレームのパフォーマンスの問題

分類Dev

javascriptでのスクロール時にヘッダーを非表示にする際のパフォーマンスの問題

分類Dev

MySQLはJDBCでパフォーマンスの問題を選択します

分類Dev

Dockerコンテナでデータベースを実行する際のパフォーマンスの問題

分類Dev

パフォーマンスの問題

分類Dev

関数を宣言すると、Clojure でパフォーマンスの問題が発生しますか?

分類Dev

パフォーマンスの問題のために結合する際の一時テーブルの使用

Related 関連記事

  1. 1

    RecyclerViewの画像をダウンロードする際のパフォーマンスの問題

  2. 2

    jQueryで動的CSSを追加する際にパフォーマンスの問題はありますか?

  3. 3

    CSSで画像をフォーマットする際の問題

  4. 4

    XAMLを作成する際のVisualStudioのパフォーマンスの問題

  5. 5

    XAMLを作成する際のVisualStudioのパフォーマンスの問題

  6. 6

    IQueryable.First()を実行する際のパフォーマンスの問題

  7. 7

    副選択でn個の最新の行を選択する際のパフォーマンスの問題

  8. 8

    パフォーマンスの問題、何が原因ですか?

  9. 9

    HTMLでメソッドを呼び出す際のAngular2のパフォーマンスの問題

  10. 10

    Laravel5.1でメールを送信する際のパフォーマンスの問題

  11. 11

    Dynamics 365 CustomerEngagementで監査データを取得する際のパフォーマンスの問題

  12. 12

    Oracleテーブルのレコードを更新する際のEntityFrameworkのパフォーマンスの問題

  13. 13

    RGB画像をグレースケールC#コードに変換する際のパフォーマンスの問題

  14. 14

    Androidアプリの開発にJavaを介してPythonを使用する際に起こりうるパフォーマンスの問題は何ですか?

  15. 15

    大量のデータを挿入する際のHibernateのパフォーマンスの問題

  16. 16

    Springの@Autowiredは大きなパフォーマンスの問題ですか?

  17. 17

    Regd:ODACを介してOracleサーバーに接続する際のパフォーマンスの問題

  18. 18

    並べ替え:このパフォーマンスの違いは実際のものですか、それとも何か問題がありますか?

  19. 19

    オブジェクト参照を配列に保存する際のパフォーマンスの問題

  20. 20

    DB接続チェックを実行する際のパフォーマンスの問題

  21. 21

    NASAデータから地形をレンダリングする際のOpenglのパフォーマンスの問題

  22. 22

    CSVから重複を削除する-パフォーマンスの問題

  23. 23

    pysparkで階層順に行を取得する際のデータフレームのパフォーマンスの問題

  24. 24

    javascriptでのスクロール時にヘッダーを非表示にする際のパフォーマンスの問題

  25. 25

    MySQLはJDBCでパフォーマンスの問題を選択します

  26. 26

    Dockerコンテナでデータベースを実行する際のパフォーマンスの問題

  27. 27

    パフォーマンスの問題

  28. 28

    関数を宣言すると、Clojure でパフォーマンスの問題が発生しますか?

  29. 29

    パフォーマンスの問題のために結合する際の一時テーブルの使用

ホットタグ

アーカイブ