【问题标题】:Why is my picture getting blurring after switching CIFilter?为什么切换CIFilter后我的图片变得模糊?
【发布时间】:2014-12-08 13:26:05
【问题描述】:

更改 imageView 图像上的 CIFilter 后,图像显得模糊。试图找出原因。

代码如下:

- (UIImage *)convertImageToGrayScale:(UIImage *)image {
    CIFilter *filter = [CIFilter filterWithName:@"CIPhotoEffectTonal"];
    CIImage *inputImage = [CIImage imageWithCGImage:image.CGImage];
    [filter setValue:inputImage forKey:kCIInputImageKey];
    return [UIImage imageWithCIImage:filter.outputImage];
}

- (UIImage *)convertImageToColorScale:(UIImage *)image {
    CIFilter *filter = [CIFilter filterWithName:@"CIPhotoEffectChrome"];
    CIImage *inputImage = [CIImage imageWithCGImage:image.CGImage];
    [filter setValue:inputImage forKey:kCIInputImageKey];
    return [UIImage imageWithCIImage:filter.outputImage];
}


- (IBAction)colorize:(id)sender {
    self.imageView.image = nil;
    if(self.hasColor) {
        self.hasColor = FALSE;
        self.imageView.image = [self convertImageToGrayScale:[UIImage imageWithContentsOfFile:self.filePath]];
        NSLog(@"remove Color");
    }
    else {
        self.hasColor = TRUE;
        self.imageView.image = [self convertImageToColorScale:[UIImage imageWithContentsOfFile:self.filePath]];
        NSLog(@"Add Color");
    }
}

当我第一次添加过滤器时,它看起来不错。当我单击按钮更改过滤器时,它是模糊的。

【问题讨论】:

    标签: ios uiimageview uiimage core-image cifilter


    【解决方案1】:

    尝试将return [UIImage imageWithCIImage:filter.outputImage]; 行替换为:

    CIImage *outputImage = [filter outputImage];
    CGImageRef imageRef = [[CIContext contextWithOptions:nil] createCGImage:outputImage fromRect:outputImage.extent];
    UIImage *newImg = [UIImage imageWithCGImage:imageRef];
    CGImageRelease(imageRef);
    return newImg;
    

    【讨论】:

      猜你喜欢
      • 2016-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-17
      • 2018-09-08
      • 1970-01-01
      • 2021-01-17
      相关资源
      最近更新 更多