IOS 使用CoreImage實現圖片模糊效果
阿新 • • 發佈:2019-01-07
//原始圖片 UIImage*image = [UIImage imageNamed:@"sourceImage.jpg"]; /*.....coreImage部分....*/ //CIImage(圖片輸入源類似於UIImage) CIImage *ciImage = [[CIImage alloc]initWithImage:image]; //CIFilter(濾鏡)CIGaussianBlue是一款濾鏡名字 CIFilter *blurFilter = [CIFilter filterWithName:@"CIGaussianBlur"]; //將圖片輸入到濾鏡中 [blurFilter setValue:ciImage forKey:kCIInputImageKey]; //設定模糊長度(不模糊為0,模糊最大為100) [blurFilter setValue:@(0) forKey:@"inputRadius"]; //將處理好的圖片輸出 CIImage *outCiImage = [blurFilter valueForKey:kCIOutputImageKey]; //輸入該濾鏡中所有可以設定的引數以及相關的資訊 NSLog(@"%@",[blurFilter attributes]); //CIContext(CIImage的操作控制代碼)nil表示預設有CPU渲染圖片(如果讓GPU渲染提高效率,則應設定contextWithOptions的字典資料) CIContext *context = [CIContext contextWithOptions:nil]; //獲取CGImage控制代碼 CGImageRef outCGImage = [context createCGImage:outCiImage fromRect:[outCiImage extent]]; //最終獲取到圖片 UIImage *blurImage = [UIImage imageWithCGImage:outCGImage]; //釋放CGImage控制代碼 CGImageRelease(outCGImage); /*.........................*/ //初始化ImageView UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(10,10,300,300)]; // imageView.backgroundColor = [UIColor redColor]; imageView.image = blurImage; imageView.center = self.view.center; [self.view addSubview:imageView];