Я могу создать фильтр CIGausianBlur, используя локальное изображение. Теперь я пытаюсь создать фильтр CIKaleidoscope и CILightTunnel, используя тот же формат. Мой код Калейдоскоп фильтра:CILightTunnel и CIKaleidoscope Filters
- (UIImage *)applyKaleidoscopeToImage:(UIImage *)image {
CIContext *context = [CIContext contextWithOptions:nil];
CIImage *ci_image = [CIImage imageWithCGImage:image.CGImage];
CIFilter *filter = [CIFilter filterWithName:@"CIKaleidoscope"];
[filter setValue:ci_image forKey:kCIInputImageKey];
[filter setValue:@55 forKey:kCIInputAngleKey];
CIVector *civ = [CIVector vectorWithX:50 Y:50];
[filter setValue:civ forKey:kCIInputCenterKey];
CIImage *result = [filter valueForKey:kCIOutputImageKey];
CGImageRef cgImage = [context createCGImage:result fromRect:[result extent]];
return [UIImage imageWithCGImage:cgImage scale:image.scale orientation:image.imageOrientation];
}
Для этого метода я получаю неперехваченное исключение типа NSException и предупреждения о попытке заменить Objet массив с нулевой стоимостью.
Мой код CILightFilter выглядит следующим образом:
- (UIImage *)applyLightTunnelToImage:(UIImage *)image {
CIContext *context = [CIContext contextWithOptions:nil];
CIImage *ci_image = [CIImage imageWithCGImage:image.CGImage];
CIFilter *filter = [CIFilter filterWithName:@"CILightTunnel"];
[filter setValue:ci_image forKey:kCIInputImageKey];
CIVector *civ = [CIVector vectorWithX:50 Y:50];
[filter setValue:civ forKey:kCIInputCenterKey];
[filter setValue:@5 forKey:kCIInputRadiusKey];
//[filter setValue:@45 forKey:kCIInputAngleKey];
CIImage *result = [filter valueForKey:kCIOutputImageKey];
CGImageRef cgImage = [context createCGImage:result fromRect:[result extent]];
return [UIImage imageWithCGImage:cgImage scale:image.scale orientation:image.imageOrientation];
}
я получаю тот же результат ноль здесь. Заранее благодарим за помощь!
У вас будет более легкое время для исправления этой ошибки, если вы сможете точно определить, где это происходит. Попробуйте установить [контрольная точка исключения] (https://developer.apple.com/library/ios/recipes/xcode_help-breakpoint_navigator/articles/adding_an_exception_breakpoint.html) в Xcode. Если вы все еще не можете исправить свою проблему, как только обнаружите, что эта строка выходит из строя, обновите свой вопрос с помощью этой информации, и вы с большей вероятностью получите хороший ответ. – rickster
CIImage, результат равен нулю. Таким образом, CoreImage не отправляет данные. – Jack120