//使用NSUserDefaults對UIImage數據進行保存 1.對JPEG圖片進行保存 UIKIT_EXTERN NSData *UIImageJPEGRepresentation(UIImage *image, CGFloat compressionQuality); 2.對PNG圖片進行保存 UIKIT_EXTERN NSData *UIImagePNGRepresentation(UIImage *image); //保存(這裏保存圖片主要是爲了後續直接拿來用,使用GPUImage對圖片進行模糊時,是一件即費時間,又費CPU的事情) [[NSUserDefaults standardUserDefaults] setValue:imageData forKey:@"image"]; [[NSUserDefaults standardUserDefaults] synchronize]; #import "ViewController.h" #import <GPUImage/GPUImage.h> @interface ViewController () { GPUImageiOSBlurFilter * _blurFilter; UIImageView * imageView; } @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; imageView = [[UIImageView alloc]initWithFrame:self.view.bounds]; imageView.image = [UIImage imageNamed:@"IMG_0311.JPG"]; [self.view addSubview:imageView]; _blurFilter = [[GPUImageiOSBlurFilter alloc]init]; _blurFilter.blurRadiusInPixels = 4.0; [self performScreenshotAndBlur]; } -(void) performScreenshotAndBlur { UIImage * image = [self convertViewToImage]; UIImage *blurredSnapshotImage = [_blurFilter imageByFilteringImage:image]; [imageView setImage:blurredSnapshotImage]; imageView.alpha = 1.0; [self.view addSubview:imageView]; } -(UIImage *)convertViewToImage { UIGraphicsBeginImageContext(self.view.bounds.size); //currentView 當前的view 創建一個基於位圖的圖形上下文並指定大小爲 [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];//renderInContext呈現接受者及其子範圍到指定的上下文 UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();//返回一個基於當前圖形上下文的圖片 UIGraphicsEndImageContext();//移除棧頂的基於當前位圖的圖形上下文 NSLog(@"%@",NSStringFromCGSize(viewImage.size)); //UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);//然後將該圖片保存到圖片圖 return viewImage; }
製作模糊背景圖片方法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.