Core Image前言
Core Image
是iOS推出一個(gè)進(jìn)行圖像處理相關(guān)的庫辞色,也可以進(jìn)行視頻方面的處理。濾鏡URL。官方文檔在介紹上很詳細(xì),必須大多數(shù)濾鏡效果都有一個(gè)樣式結(jié)果進(jìn)行查看邻邮。在使用上,可以對圖片進(jìn)行一定的變形克婶、美化饶囚、疊加、馬賽克等鸠补。
每一個(gè)濾鏡都會(huì)有一些相應(yīng)的屬性。inputImage
和outputImage
是所有濾鏡都有的屬性嘀掸,均適用CIImage
格式紫岩,不過后者沒有體現(xiàn)出來。但是在導(dǎo)出效果圖片的時(shí)候都會(huì)使用到睬塌。另外泉蝌,還有一些濾鏡擁有inputCenter
、inputScale
等一些屬性揩晴,至于其使用的格式勋陪,可以在上述鏈接中,查到硫兰。
比如要使用CIPhotoEffectMono
濾鏡的效果诅愚,代碼如下。
CIImage *inputImage = [CIImage imageWithCGImage:image.CGImage];
CIFilter *filter = [CIFilter filterWithName:@"CIPhotoEffectMono" keysAndValues:kCIInputImageKey,inputImage ,nil];
CIContext *ciContext = [CIContext contextWithOptions:nil];
CGImageRef cgImage = [ciContext createCGImage:filter.outputImage fromRect:inputImage.extent];
UIImage *resultImage = [UIImage imageWithCGImage:cgImage];
需要把 所需調(diào)整的圖片劫映,轉(zhuǎn)成 CIImage
格式违孝,再使用CIFilter
進(jìn)行初始化值。
另外泳赋,有些濾鏡會(huì)使用到CIVector
的雌桑。CIVector
類似一個(gè)坐標(biāo)屬性的東西,可以通過一維祖今、二維校坑、三維拣技、四維,傳入?yún)?shù)進(jìn)行初始化耍目。
比如一個(gè) CIPixellate
的使用效果膏斤,顧名思義,這是用于生成馬賽克效果的濾鏡制妄。其中掸绞,除了inputImage
外,還有inputCenter
(像素化中心位置耕捞,是指圖片上的坐標(biāo)衔掸,使用CIVector格式,穿入二維坐標(biāo)(x,y))俺抽,以及inputScale
(像素化的程度大小敞映,NSNumber
格式)。
CIImage *inputImage = [CIImage imageWithCGImage:image.CGImage];
CIFilter *filter = [CIFilter filterWithName:@"CIPixellate" keysAndValues:kCIInputImageKey,inputImage ,kCIInputCenterKey,[CIVector vectorWithX:_sourceImageView.image.size.width/2.0f Y:_sourceImageView.image.size.height/2.0f],kCIInputScaleKey,[NSNumber numberWithInteger:50],nil];
CIContext *ciContext = [CIContext contextWithOptions:nil];
CGImageRef cgImage = [ciContext createCGImage:filter.outputImage fromRect:inputImage.extent];
UIImage *image = [UIImage imageWithCGImage:cgImage];
2017年04月21日 更新幾個(gè)鏈接...
- Core Image簡單使用
- iOS CoreImage學(xué)習(xí)
- GPUImage Github鏈接
- 源碼級別對GPUImage進(jìn)行剖析
- 基于GPUImage的實(shí)時(shí)視頻流動(dòng)態(tài)貼紙Demo
- 實(shí)時(shí)濾鏡磷斧,自定義相機(jī)
END振愿。
我是小侯爺。
在魔都艱苦奮斗弛饭,白天是上班族冕末,晚上是知識(shí)服務(wù)工作者。
如果讀完覺得有收獲的話侣颂,記得關(guān)注和點(diǎn)贊哦档桃。
非要打賞的話,我也是不會(huì)拒絕的憔晒。