2015-02-20 3 views
0

Я собираюсь отфильтровать изображение, используя CGImageRef. Сценарий пока я применил «CIPhotoEffectChrome» и переместился на задний экран, Мое приложение будет разбиваться ... И в журнале отображается EXC_BAD_ACCESS.Ошибка приложения с использованием CGImageRef

ЗДЕСЬ код :::

- (UIImage *)CIPhotoEffectChrome { 
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{ 

     dispatch_async(dispatch_get_main_queue(), ^(void){ 
     }); 
    }); 

    CIContext *context = [CIContext contextWithOptions:nil];    // 1 

    CIImage *image = [CIImage imageWithCGImage:self.CGImage];    // 2 


    CIFilter *filter = [CIFilter filterWithName:@"CIPhotoEffectChrome"];   // 3 

    [filter setValue:image forKey:kCIInputImageKey]; 

    CIImage *result = [filter valueForKey:kCIOutputImageKey];    // 4 

    CGRect extent = [result extent]; 

    CGImageRef cgImage = [context createCGImage:result fromRect:extent]; 

    UIImage *filterImage=[UIImage imageWithCGImage:cgImage]; 

    CGImageRelease(cgImage); 

    return filterImage; 
} 

Пожалуйста, помогите мне !!!!!

+0

Пожалуйста, укажите точное положение в коде, где произошел сбой, и трассировка стека или журнал сбоев. –

+0

На этой строке CGImageRef cgImage = [контекст createCGImage: result fromRect: extent]; – Sonu

+0

Пожалуйста, сообщите нам точное исключение, поэтому мы можем вам помочь. Получен ли результат? – NightFury

ответ

1

вам нужно удалить CGImageRelease (cgImage) и снова запустить, потому что мы не создаем его явно.

Как и в случае аварии, происходит переход из текущего контроллера вида, что означает, что вы загружаете изображения через ленивую загрузку или какую-либо другую веб-службу, поэтому вы должны установить делегат на нуль или если объект делегата объявлен как сильным, так и сохраните, что должно быть слабым.

+0

№ 'createCGImage: fromRect:' возвращает +1 сохраненное изображение. –

Смежные вопросы