首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用UISlider的CIFilter

使用UISlider的CIFilter
EN

Stack Overflow用户
提问于 2012-06-17 08:19:44
回答 3查看 2.1K关注 0票数 6

所以我有一个使用CIFilter改变色调的UISlider。它慢得离谱,因为我在使用uislider的时候影响了基础图像。

有没有人有关于如何更有效地做这件事的建议?

代码语言:javascript
复制
 // UI SLIDER
-(IBAction)changeSlider:(id)sender {

    [self doHueAdjustFilterWithBaseImage:currentSticker.image 
                            hueAdjust:[(UISlider *)sender value]];

}
//Change HUE
-(void)doHueAdjustFilterWithBaseImage:(UIImage*)baseImage hueAdjust:(CGFloat)hueAdjust {

    CIImage *inputImage = [[CIImage alloc] initWithImage:baseImage];
    CIFilter * controlsFilter = [CIFilter filterWithName:@"CIHueAdjust"];

    [controlsFilter setValue:inputImage forKey:kCIInputImageKey];
    [controlsFilter setValue:[NSNumber numberWithFloat:hueAdjust] forKey:@"inputAngle"];

    //NSLog(@"%@",controlsFilter.attributes);

    CIImage *displayImage = controlsFilter.outputImage;
    CIContext *context = [CIContext contextWithOptions:nil];

    if (displayImage == nil){

        NSLog(@"Display NADA");

    } else {

        NSLog(@"RETURN Image");
        currentSticker.image =  [UIImage imageWithCGImage:[context createCGImage:displayImage fromRect:displayImage.extent]];

    }

    displayImage = nil;
    inputImage = nil;
    controlsFilter = nil;

}
EN

回答 3

Stack Overflow用户

发布于 2012-06-17 09:37:29

您可以将UISlider的continuous属性设置为NO。因此,只有当用户releaseS手指时才会调用您的changeSlider。这是苹果的doc

票数 3
EN

Stack Overflow用户

发布于 2013-01-30 05:36:06

你在这里的问题是你一直在重新声明上下文。将上下文作为属性,并在初始化器中初始化它一次,然后反复使用它,就会看到巨大的性能提升。

票数 2
EN

Stack Overflow用户

发布于 2012-06-17 09:48:55

我猜,与其改变你想要的可怕的行为,在滑动的同时频繁更新是好的!对于用户体验来说,这是最佳选择。因此,不要改变这种行为,而是要对算法进行改进,以实现更大的优化。检查这个之前问过的问题,它有一些很好的提示。

How to implement fast image filters on iOS platform

我的建议是,不断更新滑块属性,但尝试编写一些代码,当滑块命中一个整数小数(有趣的术语,可能也是错误的)时进行更新。我的意思是,当滑块经过10.000,20.000,30.000时检测到。只有这样才能更新图像,而不是为每个点更新。希望这是有意义的。

编辑:

让你的,

以iVar格式输入图像和过滤变量。检查它们是否已经被分配,然后重用它,而不是每次都创建。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11067998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档