Objective c Can';不在UIImage上应用输入清晰度

Objective c Can';不在UIImage上应用输入清晰度,objective-c,ios,filter,uiimage,ios5.1,Objective C,Ios,Filter,Uiimage,Ios5.1,我在我的应用程序中使用了一组CIFilter过滤器来调整亮度、饱和度等,它们工作正常。我在输入清晰度方面遇到一些问题。如果我触摸锐度滑块,图片就会消失。相关代码: UIImage *aUIImage = [imageView image]; CGImageRef aCGImage = aUIImage.CGImage; aCIImage = [CIImage imageWithCGImage:aCGImage]; //Create context context = [CIContext co

我在我的应用程序中使用了一组
CIFilter
过滤器来调整亮度、饱和度等,它们工作正常。我在
输入清晰度方面遇到一些问题。如果我触摸锐度滑块,图片就会消失。相关代码:

UIImage *aUIImage = [imageView image];
CGImageRef aCGImage = aUIImage.CGImage;
aCIImage = [CIImage imageWithCGImage:aCGImage];

//Create context
context = [CIContext contextWithOptions:nil];
sharpFilter = [CIFilter filterWithName:@"CIAttributeTypeScalar" keysAndValues: @"inputImage", aCIImage, nil];


我读过一篇有类似问题的帖子,有一个可能的解决方案是为你想要提供的UIImage效果添加一个类别。这里唯一的区别是您应该使用
CIColorControls
参数之一:
inputsharpenness
CISharpenLuminance
过滤器

回到你的问题:从你的评论来看,你对如何初始化你的过滤器有一些问题。我看了一下,我会在初始化阶段使用
CISharpenLuminance
。但它仅在ios 6中可用

编辑
就像我说的,如果你想坚持核心映像,你想要的功能只在iOS 6上可用。如果你想与ios 5兼容,我可以建议你使用bradlarson提供的第三方库。

我读过一篇文章,有一个类似的问题,可能的解决方案是为你想要提供的UIImage效果添加一个类别。这里唯一的区别是您应该使用
CIColorControls
参数之一:
inputsharpenness
CISharpenLuminance
过滤器

回到你的问题:从你的评论来看,你对如何初始化你的过滤器有一些问题。我看了一下,我会在初始化阶段使用
CISharpenLuminance
。但它仅在ios 6中可用

编辑
就像我说的,如果你想坚持核心映像,你想要的功能只在iOS 6上可用。如果您想与ios 5兼容,我可以建议您使用bradlarson提供的第三方库。

您是否检查了任何输出图像是否为零?图像不是零,但当我调试代码时,我发现
sharpFilter CIFilter*0x00000000
因此sharp filter定义可能有问题。您是否保留您的设置夏普过滤器?是的。没有变化。经过一些阅读,我认为应该是
CIStripesGenerator
而不是
ciattributeyposition
,但是我得到了一个错误
这个类不符合密钥输入图像的键值编码。
你在ios 6上吗?-查看我的anwserdid u检查是否有任何输出图像为零?图像不是零,但当我调试代码时,我看到
sharpFilter CIFilter*0x00000000
因此sharpFilter定义可能有问题。是否保留sharpFilter?是的。没有变化。经过一些阅读,我认为应该是
CIStripesGenerator
而不是
ciattributeyposition
,但是我得到了一个错误
这个类不符合密钥输入图像的键值编码。
你在ios 6上吗?-请参阅我的Anwserally,这篇文章实际上帮助我使用了其他过滤器。就像我上面说的,我不会因为这个小功能就把我的应用限制在ios 6上。至少5个月。经过大量阅读,我开始认为iOS5没有锐化过滤器。实际上,那篇文章帮助我使用了其他过滤器。就像我上面说的,我不会因为这个小功能就把我的应用限制在ios 6上。至少5个月。经过大量阅读,我开始认为iOS5没有锐化过滤器。
- (IBAction)sharpSliderChanged:(id)sender
{

    //Set filter value
    [sharpFilter setValue:[NSNumber numberWithFloat:sharpSlider.value] forKey:@"inputSharpness"];

    //Convert CIImage to UIImage
    outputImage = [sharpFilter outputImage];
    CGImageRef cgimg = [context createCGImage:outputImage fromRect:[outputImage extent]];
    newUIImage = [UIImage imageWithCGImage:cgimg];
    CGImageRelease(cgimg);

    //add image to imageView
    [imageView setImage:newUIImage];

}