jak*_*erg 5 xcode gaussian uiview ios
我有一个高斯模糊,我正在为一个应用程序做.
//Get a UIImage from the UIView
UIGraphicsBeginImageContext(self.view.bounds.size);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
//Blur the UIImage
CIImage *imageToBlur = [CIImage imageWithCGImage:viewImage.CGImage];
CIFilter *gaussianBlurFilter = [CIFilter filterWithName:@"CIGaussianBlur"];
[gaussianBlurFilter setValue:imageToBlur forKey:@"inputImage"];
[gaussianBlurFilter setValue:[NSNumber numberWithFloat:2] forKey:@"inputRadius"];
CIImage *resultImage = [gaussianBlurFilter valueForKey:@"outputImage"];
UIImage *endImage = [[UIImage alloc] initWithCIImage:resultImage];
//Place the UIImage in a UIImageView
newView = [[UIImageView alloc] initWithFrame:self.view.bounds];
newView.image = endImage;
[self.view addSubview:newView];
Run Code Online (Sandbox Code Playgroud)
它工作得很好,但我希望能够将其反转并使视图恢复正常.
我怎么能这样做,因为试图简单地从它的超视图中移除模糊的视图不起作用.我也尝试过将各种属性设置为零而没有运气.
在属性中保留指向 viewImage 的指针
@property (nonatomic, strong) UIImage* originalImage;
Run Code Online (Sandbox Code Playgroud)
然后
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
Run Code Online (Sandbox Code Playgroud)
添加
self.originalImage = viewImage;
Run Code Online (Sandbox Code Playgroud)
要恢复您的图像:
newView.image = self.originalImage;
Run Code Online (Sandbox Code Playgroud)
当你应用模糊时,它不会改变viewImage..你创建了一个单独的CIImage,它变得模糊,并且你从模糊的CIImage创建一个新的UIImage。
| 归档时间: |
|
| 查看次数: |
4193 次 |
| 最近记录: |