製作模糊背景圖片方法

//使用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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章