我在我的iOS应用程序中使用CIFilter进行图像过滤。我的下面的代码工作顺利。但我有一个问题,我认为处理图像是时间(我无法获得实时效果)。如何解决这个问题问题?
cameraImgView.image = [ImageProcessing sepian:myOriginalImage withInensity:0.5]; //method call
方法定义
+(UIImage*)sepian:(UIImage*)img withInensity:(float)intensity{
CIImage *cimage = [[CIImage alloc] initWithImage:img];
CIFilter *sepiaFilter = [CIFilter filterWithName:@"CISepiaTone"];
[sepiaFilter setDefaults];
[sepiaFilter setValue:cimage forKey:@"inputImage"];
[sepiaFilter setValue:[NSNumber numberWithFloat:intensity]
forKey:@"inputIntensity"];
CIImage *outputImage = [sepiaFilter outputImage];
CIContext *context = [CIContext contextWithOptions:nil];
CGImageRef cgImage = [context createCGImage:
outputImage fromRect:[outputImage extent]];
UIImage *resultUIImage = [UIImage imageWithCGImage:cgImage];
CGImageRelease(cgImage);
return resultUIImage;
}
答案 0 :(得分:0)
试试这个:
filter = [CIFilter filterWithName:@"CISepiaTone"
keysAndValues: kCIInputImageKey, rawImageData,
@"inputIntensity", @3.5, nil];
如下所示提供此过滤器:
CIImage *filteredImageData = [filter valueForKey:@"outputImage"];
UIImage *filteredImage = [UIImage imageWithCIImage:filteredImageData];
self.img_view.image = filteredImage;