CoreImage
CIFilter
找出FilterName
[CIFilter filterNamesInCategory:nil]回傳一個符合條件的FilterNamesArray
輸入CategoryKey或者輸入nil(回傳全部)
Result:



CategoryKey
extern NSString *kCICategoryDistortionEffect ;
extern NSString *kCICategoryGeometryAdjustment ;
extern NSString *kCICategoryCompositeOperation ;
extern NSString *kCICategoryHalftoneEffect ;
extern NSString *kCICategoryColorAdjustment ;
extern NSString *kCICategoryColorEffect ;
extern NSString *kCICategoryTransition ;
extern NSString *kCICategoryTileEffect ;
extern NSString *kCICategoryGenerator ;
extern NSString *kCICategoryReduction ;
extern NSString *kCICategoryGradient ;
extern NSString *kCICategoryStylize ;
extern NSString *kCICategorySharpen ;
extern NSString *kCICategoryBlur ;
extern NSString *kCICategoryVideo ;
extern NSString *kCICategoryStillImage ;
extern NSString *kCICategoryInterlaced ;
extern NSString *kCICategoryNonSquarePixels ;
extern NSString *kCICategoryHighDynamicRange ;
extern NSString *kCICategoryBuiltIn ;
extern NSString *kCICategoryFilterGenerator;查詢CIFilter詳細資訊
NSLog(@"%@",[[CIFilter filterWithName:@"CIAdditionCompositing"] attributes]);回傳有關這個Name的Filter的相關參數資訊
Result:

CIAttributeFilterCategories
這個Filter是被分類在哪些Categories
(用這些Categories Key可以找到這個Filter)
CIAttributeFilterDisplayName
這個Filter的顯示名稱
CIAttributeFilterName
這個Filter的名稱(剛剛函數輸入的名字)
其他屬性
使用這個Filter需要用到的參數
(有的有詳細說明最大最小值)
CIFilter *filter = [CIFilter filterWithName:@"CIAdditionCompositing"];
CIImage *test1 = [[CIImage alloc]initWithImage:[UIImage imageNamed:@"sfffff.png"]];
CIImage *test2 = [[CIImage alloc]initWithImage:[UIImage imageNamed:@"mark.png"]];
[filter setValue:test1 forKey:@"inputImage"];
[filter setValue:test2 forKey:@"inputBackgroundImage"];
CIImage *image = [filter valueForKey:@"outputImage”];CIAdditionCompositing
Example:
利用兩張圖片重疊添加顏色分量提高亮度
inputBackgroundImage
- 底圖
- 需用CIImage
inputImage
- 疊在底圖上
- 需用CIImage
Result:

CIAffineTransform
Example:
利用矩陣變形圖片
CIFilter *filter = [CIFilter filterWithName:@"CIAffineTransform"];
CIImage *test1 = [[CIImage alloc]initWithImage:[UIImage imageNamed:@"test.png"]];
[filter setValue:test1 forKey:@"inputImage"];
CGAffineTransform tran = CGAffineTransformMake(1, 0.5, 0, 1, 0,0);
[filter setValue:[NSValue valueWithBytes:&tran objCType:@encode(CGAffineTransform)]
forKey:@"inputTransform"];
CIImage *image = [filter valueForKey:@"outputImage”];inputImage
- 想要變形的圖片
- 需用CIImage
inputTransform
- 仿射矩陣
- 需用CGAffineTransform轉NSValue
- CGAffineTransformMake(a,b,c,d,e,f)
- a = [1,1],b = [1,2],c = [2,1],d = [2,2],e = [3,1],f = [3,2]
- 與原圖相同為(1,0,0,1,0,0)
Result:

CIBarsSwipeTransition
將兩張圖螺旋融合成一張。
Example:
CIFilter *filter = [CIFilter filterWithName:@"CIBarsSwipeTransition"];
CIImage *test1 = [[CIImage alloc]initWithImage:[UIImage imageNamed:@"test.png"]];
CIImage *test2 = [[CIImage alloc]initWithImage:[UIImage imageNamed:@"sfffff.png"]];
[filter setValue:test1 forKey:@"inputImage"];
[filter setValue:test2 forKey:@"inputTargetImage"];
[filter setValue:@3 forKey:@"inputAngle"];
[filter setValue:@5 forKey:@"inputBarOffset"];
[filter setValue:@0.5 forKey:@"inputTime"];
[filter setValue:@5 forKey:@"inputWidth"];
CIImage *image = [filter valueForKey:@"outputImage”];inputImage
- 左邊的圖
- 需用CIImage
inputTargetImage
- 右邊的圖
- 需為CIImage
inputAngle
- 角度
- 需用NSNumber
- 最大值為 6.283185307179586
- default為 3.141592653589793
- 最小值為0
inputWidth
- 寬度
- 需用NSNumber
- 最小值為2
- default為30
inputBarOffset
- bar偏移程度
- 需用NSNumber
- 最小值為1
- default為10

Result:
What's new in iOS 8?
Audio Effects

音樂濾鏡
New Image Filters

新的CIFilter
Custom Filters

客製化濾鏡
Metal Basic

(需用iphone6)
Metal Uniform Streaming

(需用iphone6)
SceneKit

場景
HealthKit

可用於醫療系統
TouchID

指紋辨識
Visual Effects

毛玻璃
Table Separator Effect
TableView分隔線

Ruby Annotation

顯示每個字的發音
Web Kit

WKWebView
UIAlertController

UIAlertView + UIAlertSheet
User Notification

客製Action
Altimeter

(需有M8)
Pedometer

(需有M7、M8)
AVKit

媒體播放DEMO
Histogram

產生直方圖
Code Generator

產生條碼
New Fonts

新字體
Popover

UIPopoverPresentationController
The end
CoreImage-CIFilter
By T iOS
CoreImage-CIFilter
Edited By Francis Hu
- 1,290