I am using CIFilter for image filtering in my iOS app.My following code works smoothly.But i have one problem,i think processing of image is time taken(I can't get real time effect).How to solve this issue?
cameraImgView.image = [ImageProcessing sepian:myOriginalImage withInensity:0.5]; //method call
Method Definition
+(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;
}
Try this:
filter = [CIFilter filterWithName:@"CISepiaTone"
keysAndValues: kCIInputImageKey, rawImageData,
@"inputIntensity", @3.5, nil];
Give this filter like below:
CIImage *filteredImageData = [filter valueForKey:@"outputImage"];
UIImage *filteredImage = [UIImage imageWithCIImage:filteredImageData];
self.img_view.image = filteredImage;
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.