標籤:
iOS8 CIGlassDistortion濾鏡的使用
此為CoreImage濾鏡的使用
素材
效果
混合用圖片
源碼:
//// ViewController.m// CIGlass//// Created by XianMingYou on 15/3/15.// Copyright (c) 2015年 XianMingYou. All rights reserved.//#import "ViewController.h"@interface ViewController ()@property (nonatomic, strong) UIImage *orgImage;@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; // 設定背景色 self.view.backgroundColor = [UIColor blackColor]; self.orgImage = [UIImage imageNamed:@"bg.png"]; // 資料來源 + 設定 CIImage *ciImage = [[CIImage alloc] initWithImage:self.orgImage]; NSDictionary *params = @{ kCIInputImageKey: ciImage, }; // 初始化濾鏡 CIFilter *filter = [CIFilter filterWithName:@"CIGlassDistortion" withInputParameters:params]; [filter setDefaults]; // 輸入變形參數 if ([filter respondsToSelector:NSSelectorFromString(@"inputTexture")]) { CIImage *ciTextureImage = [[CIImage alloc] initWithImage:[UIImage imageNamed:@"grassdistortion.png"]]; [filter setValue:ciTextureImage forKey:@"inputTexture"]; } // 建立上下文 + 輸出圖片 CIContext *context = [CIContext contextWithOptions:nil]; CIImage *outputImage = [filter outputImage]; // 擷取圖片 CGImageRef cgImage = [context createCGImage:outputImage fromRect:[outputImage extent]]; // 擷取圖片 UIImage *image = [UIImage imageWithCGImage:cgImage]; // 釋放資源 CGImageRelease(cgImage); // 載入圖片 UIImageView *imageView = [[UIImageView alloc] initWithImage:image]; imageView.frame = self.view.bounds; [self.view addSubview:imageView];}@end
需要注意的細節:
iOS8 CIGlassDistortion濾鏡的使用