【问题标题】:iOS: image filter CIFilter state not maintainediOS:图像过滤器 CIFilter 状态未维护
【发布时间】:2014-07-28 11:35:42
【问题描述】:

我正在尝试 CIFilter 在图像上应用各种效果(亮度、对比度、饱和度等)。

图片滤镜应用成功。但是最后编辑的图像的状态并没有保持,例如:如果我增加图像的亮度,然后对编辑的图像应用对比度,那么对比度将应用于原始图像,而不是应用于亮度增加的图像

以下是代码:

    - (IBAction)contrastSliderValueChanged:(id)sender {

        filter=NULL;
        result=NULL;
        cgimg=NULL;
        newimg=NULL;



        if (adjustMenuTag==1) {

            filter=[CIFilter filterWithName:@"CIColorControls"];
            [filter setDefaults];
            [filter setValue:beginImage forKey:@"inputImage"];
            [filter setValue:[NSNumber numberWithFloat:contrastSlider.value] forKey:@"inputBrightness"] ;
            result=[filter valueForKey:kCIOutputImageKey];

            cgimg=[context createCGImage:result fromRect:[result extent]];
            newimg=[UIImage imageWithCGImage:cgimg];


            imageViewDisplay.image=newimg;
            beginImage = result;
            CFRelease(cgimg);
    //        beginImage = [[CIImage alloc] initWithImage:imageViewDisplay.image];


        } else if(adjustMenuTag ==2 ) {

            filter=[CIFilter filterWithName:@"CIColorControls"];
            [filter setDefaults];
            [filter setValue:beginImage forKey:@"inputImage"];
            [filter setValue:[NSNumber numberWithFloat:contrastSlider.value+0.5] forKey:@"inputContrast"] ;
            result=[filter valueForKey:kCIOutputImageKey];
            cgimg=[context createCGImage:result fromRect:[result extent]];
            newimg=[UIImage imageWithCGImage:cgimg];
            imageViewDisplay.image=newimg;
            beginImage = result;
            CFRelease(cgimg);
    //        beginImage = newimg.CIImage;  //this also doesn't work.
        }
}

我哪里错了?我该如何解决这个问题?如何保持编辑后图像的状态?

【问题讨论】:

    标签: ios core-image cifilter


    【解决方案1】:

    查看代码,您似乎在每次选择菜单项时都在创建 CIColorControls 过滤器的新实例。您应该创建一个,保留它,并根据需要更新其输入。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-05
      • 1970-01-01
      • 1970-01-01
      • 2014-09-02
      • 2012-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多