1

そのため、ここ数日、コア イメージを使用してイメージをぼかす試みをしながら、メモリ リークにパッチを当てようと頭を悩ませていました。このコード ブロックまでメモリ リークを追跡しました。

- (void) blurImage {
    UIGraphicsBeginImageContext(self.view.bounds.size);
    [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    NSLog(@"Captured Image");

    @autoreleasepool {
        CIImage *inputImage = [[CIImage alloc] initWithCGImage:image.CGImage];
        CIFilter *filter = [CIFilter filterWithName:@"CIGaussianBlur"];
        [filter setValue:inputImage forKey:@"inputImage"];
        [filter setValue:[NSNumber numberWithFloat:10.0] forKey:@"inputRadius"];

        CIImage *result = [filter valueForKey:kCIOutputImageKey];
        blur_image.image= [[UIImage alloc] initWithCIImage:result];
    }
    NSLog(@"blurred Image");
}

このコードは 2 つのことを行います。まず、その時点で画面のスクリーン ショットをキャプチャし、次にその画像をぼかして、スーパービューの背景にある画像ビューに int を設定します。

バックグラウンドで実行するセレクターを使用して、このコードブロックを呼び出しています

- (void) viewDidAppear:(BOOL)animated{
    SEL blur = @selector(blurImage);
    [self performSelectorInBackground:blur withObject:nil];
}

このコードに関連する 3 つのメモリ リークが発生しています

これは私が言及したリークです: CoreImage CI::GLESContext::program_for_name(__CFString const*)

私が間違っていることについて混乱しています誰かが私を啓発できますか?

4

1 に答える 1

1

ここでいくつかのポイント

于 2014-08-31T03:21:37.137 に答える