Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 将CIFilter应用于图像会生成空UIImage_Objective C_Xcode_Cocoa Touch_Core Image_Cifilter - Fatal编程技术网

Objective c 将CIFilter应用于图像会生成空UIImage

Objective c 将CIFilter应用于图像会生成空UIImage,objective-c,xcode,cocoa-touch,core-image,cifilter,Objective C,Xcode,Cocoa Touch,Core Image,Cifilter,我正在尝试对从UIImagePickerController接收的图像应用CIFilter。以下是我正在使用的代码: - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { [picker dismissViewControllerAnimated:YES completion:nil]; UIIma

我正在尝试对从UIImagePickerController接收的图像应用CIFilter。以下是我正在使用的代码:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {

    [picker dismissViewControllerAnimated:YES completion:nil];

    UIImage *userImage = info[UIImagePickerControllerOriginalImage];
    UIImage *croppedImage = [UIImage imageWithCGImage:CGImageCreateWithImageInRect(userImage.CGImage, CGRectMake(0, 320, 640, 640))];

    CIContext *context = [CIContext contextWithOptions:nil];
    CIImage *img = [CIImage imageWithCGImage:croppedImage.CGImage];
    CIFilter *adjustFilter = [CIFilter filterWithName:@"CILineOverlay"];

    [adjustFilter setDefaults];
    [adjustFilter setValue:img forKey:kCIInputImageKey];
    [adjustFilter setValue:[NSNumber numberWithFloat:1.0] forKey:@"inputNRSharpness"];
    CIImage *adjustedImage = [adjustFilter valueForKey:kCIOutputImageKey];
    UIImage *newImage = [UIImage imageWithCIImage:[context createCGImage:adjustedImage fromRect:adjustedImage.extent]];

    NSLog(@"%@", newImage);

    self.myImageView.image = newImage;

}
现在,当应用过滤器的过程完成时,不会出现错误,尽管控制台会记录,但在图像视图中看不到图像。如果我跳过处理部分,只将未过滤的裁剪图像指定给图像视图,它将显示良好


那么我做错了什么?我想用这段代码来处理一个屏幕截图,但我用一张照片试过了,结果还是一样的零。

在iOS中还没有。这有一个开源库,请尝试这3个过滤器,它可能会对您有所帮助!1 GPUImageCrosshatchFilter 2 GPUImageSketchFilter 3 GPUImageToonFilter