ios - 核心图像过滤器 iOS UISlider

标签 ios filter uiimageview uislider core-image

我正在尝试对从照片库加载到 UI View 的图像实现棕褐色滤镜。

我有一个 UI slider ...范围从 -1 到 1。并应用棕褐色效果。

我遇到的问题是,总体效果正在汇总。就像...如果我将 slider 置于 1,然后将其移回 0。它不会将图像恢复为原始形式。然后我将其移回 1.. 总共应用了 2 次棕褐色。

- (IBAction)slidermove:(id)sender {

    currentValue=_sliderValue.value;

    if (currentButton==1)
    {
        //1
        CIImage *beginImage = [CIImage imageWithData: UIImagePNGRepresentation(self.imageView.image)];

        //2
        CIContext *context = [CIContext contextWithOptions:nil];

        //3
        CIFilter *filter = [CIFilter filterWithName:@"CISepiaTone"
                                      keysAndValues: kCIInputImageKey, beginImage,
                            @"inputIntensity", [NSNumber numberWithFloat:currentValue], nil];

        //4
        CIImage *outputImage = [filter outputImage];

        CGImageRef cgimg = [context createCGImage:outputImage fromRect:[outputImage extent]];

        //5
        self.imageView.image = [UIImage imageWithCGImage:cgimg];

        //6
        CGImageRelease(cgimg);
    }


}



- (IBAction)applyeffect:(id)sender
{
    currentButton=1;


}

最佳答案

出现此问题是因为您没有保存原始图像。每次 slider 更改时您都会更改图像,因此效果会很复杂。以下是您应该做的:

在你的@interface中:

@property(strong, nonatomic)UIImage *originalImage;

在你的@implementation中:

-(void)viewDidLoad{
    [super viewDidLoad];
    self.imageView.image = self.originalImage;
}

然后当你做效果时,将它应用到 originalImage 属性,并在 self.imageView 中显示结果。

关于ios - 核心图像过滤器 iOS UISlider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22970281/

相关文章:

ios - 通过当前模态执行 Segue 后出现 'found nil' 异常

android - 使用 React Native FS 将文件保存到外部存储 android API 30

javascript - Angular 1.x 过滤器 - 修改过滤元素会影响原始数组

ios - 当不再显示 UIViewController 时如何继续 CAKeyframeAnimation?

swift - 旋转动画仅在最终位置显示 iOS swift

ios - 在 iCarousel 控件中在图像上显示文本

ios - Apple 推送通知集成问题

tcp - BPF 过滤器 TCP 连接

angularjs - 按多个属性进行 Angular 过滤并显示任何值是否等于搜索

ios - UIImageView:如何显示缩放图像?