iOS GPUImage 的使用《轉(zhuǎn)》

《原文地址

GPUImage是現(xiàn)在做濾鏡最主流的開源框架乱豆,沒有之一。作者BradLarson基于openGL對圖片處理單元進行封裝把沼,提供出GPUImageFilter基類详民,配合shader,常用濾鏡都拿下不是問題涛酗。

一铡原、安裝

(1):首先下載GPUImage ?https://github.com/BradLarson/GPUImage

(2):解壓后,在framework 目錄下商叹,打開 GPUImage.xcodeproj ?工程

(3)因為 GPUImage是一個開源的庫 燕刻,所以需要自己生成 靜態(tài)庫(以前的笨方法把整個工程加入項目,這在使用中出現(xiàn)了很不不必要的麻煩)

(4):運行該工程(生成 用于真機和模擬器的lib)

(5)點擊Products下的 libGPUImage.a剖笙,右鍵卵洗, show in finder 將 兩個lib 合并(方法,詳見關于 創(chuàng)建靜態(tài)庫的博文)

(6) 將 GPUImage.h文件中包含的頭文件全部 提取到 header文件中

二 弥咪、創(chuàng)建用于使用GPUImage的項目

1.創(chuàng)建工程

2.將 header文件夾和libGPUImage.a加入到項目中

目錄結(jié)構(gòu)為:

3.編寫測試代碼

@implementationViewController

- (void)viewDidLoad

{

[superviewDidLoad];

UIImage* inputImage = [UIImageimageNamed:@"k"];

//使用黑白素描濾鏡

GPUImageSketchFilter*disFilter = [[GPUImageSketchFilteralloc]init];

//設置要渲染的區(qū)域

[disFilterforceProcessingAtSize:inputImage.size];

[disFilteruseNextFrameForImageCapture];

//獲取數(shù)據(jù)源

GPUImagePicture*stillImageSource = [[GPUImagePicturealloc]initWithImage:inputImage];

//添加上濾鏡

[stillImageSourceaddTarget:disFilter];

//開始渲染

[stillImageSourceprocessImage];

//獲取渲染后的圖片

UIImage*newImage = [disFilterimageFromCurrentFramebuffer];

//加載出來

UIImageView*imageView = [[UIImageViewalloc]initWithImage:newImage];

imageView.frame=CGRectMake(50,50,inputImage.size.width,inputImage.size.height);

[self.viewaddSubview:imageView];

}

4.運行明目

原圖

經(jīng)過濾鏡處理后的圖片效果过蹂。

三十绑、GPUImage中的幾個概念

? output為輸出源

? intput為輸入源

? filter為濾鏡

28#import"GPUImageBrightnessFilter.h"http://亮度29#import"GPUImageExposureFilter.h"http://曝光30#import"GPUImageContrastFilter.h"http://對比度31#import"GPUImageSaturationFilter.h"http://飽和度32#import"GPUImageGammaFilter.h"http://伽馬線33#import"GPUImageColorInvertFilter.h"http://反色34#import"GPUImageSepiaFilter.h"http://褐色(懷舊)35#import"GPUImageLevelsFilter.h"http://色階36#import"GPUImageGrayscaleFilter.h"http://灰度37#import"GPUImageHistogramFilter.h"http://色彩直方圖,顯示在圖片上38#import"GPUImageHistogramGenerator.h"http://色彩直方圖39#import"GPUImageRGBFilter.h"http://RGB40#import"GPUImageToneCurveFilter.h"http://色調(diào)曲線41#import"GPUImageMonochromeFilter.h"http://單色42#import"GPUImageOpacityFilter.h"http://不透明度43#import"GPUImageHighlightShadowFilter.h"http://提亮陰影44#import"GPUImageFalseColorFilter.h"http://色彩替換(替換亮部和暗部色彩)45#import"GPUImageHueFilter.h"http://色度46#import"GPUImageChromaKeyFilter.h"http://色度鍵47#import"GPUImageWhiteBalanceFilter.h"http://白平橫48#import"GPUImageAverageColor.h"http://像素平均色值49#import"GPUImageSolidColorGenerator.h"http://純色50#import"GPUImageLuminosity.h"http://亮度平均51#import"GPUImageAverageLuminanceThresholdFilter.h"http://像素色值亮度平均酷勺,圖像黑白(有類似漫畫效果)5253#import"GPUImageLookupFilter.h"http://lookup 色彩調(diào)整54#import"GPUImageAmatorkaFilter.h"http://Amatorka lookup55#import"GPUImageMissEtikateFilter.h"http://MissEtikate lookup56#import"GPUImageSoftEleganceFilter.h"http://SoftElegance lookup61#pragmamark - 圖像處理 Handle Image6263#import"GPUImageCrosshairGenerator.h"http://十字64#import"GPUImageLineGenerator.h"http://線條6566#import"GPUImageTransformFilter.h"http://形狀變化67#import"GPUImageCropFilter.h"http://剪裁68#import"GPUImageSharpenFilter.h"http://銳化69#import"GPUImageUnsharpMaskFilter.h"http://反遮罩銳化7071#import"GPUImageFastBlurFilter.h"http://模糊72#import"GPUImageGaussianBlurFilter.h"http://高斯模糊73#import"GPUImageGaussianSelectiveBlurFilter.h"http://高斯模糊孽惰,選擇部分清晰74#import"GPUImageBoxBlurFilter.h"http://盒狀模糊75#import"GPUImageTiltShiftFilter.h"http://條紋模糊,中間清晰鸥印,上下兩端模糊76#import"GPUImageMedianFilter.h"http://中間值勋功,有種稍微模糊邊緣的效果77#import"GPUImageBilateralFilter.h"http://雙邊模糊78#import"GPUImageErosionFilter.h"http://侵蝕邊緣模糊,變黑白79#import"GPUImageRGBErosionFilter.h"http://RGB侵蝕邊緣模糊库说,有色彩80#import"GPUImageDilationFilter.h"http://擴展邊緣模糊狂鞋,變黑白81#import"GPUImageRGBDilationFilter.h"http://RGB擴展邊緣模糊,有色彩82#import"GPUImageOpeningFilter.h"http://黑白色調(diào)模糊83#import"GPUImageRGBOpeningFilter.h"http://彩色模糊84#import"GPUImageClosingFilter.h"http://黑白色調(diào)模糊潜的,暗色會被提亮85#import"GPUImageRGBClosingFilter.h"http://彩色模糊骚揍,暗色會被提亮86#import"GPUImageLanczosResamplingFilter.h"http://Lanczos重取樣,模糊效果87#import"GPUImageNonMaximumSuppressionFilter.h"http://非最大抑制啰挪,只顯示亮度最高的像素信不,其他為黑88#import"GPUImageThresholdedNonMaximumSuppressionFilter.h"http://與上相比,像素丟失更多8990#import"GPUImageSobelEdgeDetectionFilter.h"http://Sobel邊緣檢測算法(白邊亡呵,黑內(nèi)容抽活,有點漫畫的反色效果)91#import"GPUImageCannyEdgeDetectionFilter.h"http://Canny邊緣檢測算法(比上更強烈的黑白對比度)92#import"GPUImageThresholdEdgeDetectionFilter.h"http://閾值邊緣檢測(效果與上差別不大)93#import"GPUImagePrewittEdgeDetectionFilter.h"http://普瑞維特(Prewitt)邊緣檢測(效果與Sobel差不多,貌似更平滑)94#import"GPUImageXYDerivativeFilter.h"http://XYDerivative邊緣檢測锰什,畫面以藍色為主下硕,綠色為邊緣,帶彩色95#import"GPUImageHarrisCornerDetectionFilter.h"http://Harris角點檢測汁胆,會有綠色小十字顯示在圖片角點處96#import"GPUImageNobleCornerDetectionFilter.h"http://Noble角點檢測梭姓,檢測點更多97#import"GPUImageShiTomasiFeatureDetectionFilter.h"http://ShiTomasi角點檢測,與上差別不大98#import"GPUImageMotionDetector.h"http://動作檢測99#import"GPUImageHoughTransformLineDetector.h"http://線條檢測100#import"GPUImageParallelCoordinateLineTransformFilter.h"http://平行線檢測101102#import"GPUImageLocalBinaryPatternFilter.h"http://圖像黑白化嫩码,并有大量噪點103104#import"GPUImageLowPassFilter.h"http://用于圖像加亮105#import"GPUImageHighPassFilter.h"http://圖像低于某值時顯示為黑106107108#pragmamark - 視覺效果 Visual Effect109110#import"GPUImageSketchFilter.h"http://素描111#import"GPUImageThresholdSketchFilter.h"http://閥值素描誉尖,形成有噪點的素描112#import"GPUImageToonFilter.h"http://卡通效果(黑色粗線描邊)113#import"GPUImageSmoothToonFilter.h"http://相比上面的效果更細膩,上面是粗曠的畫風114#import"GPUImageKuwaharaFilter.h"http://桑原(Kuwahara)濾波,水粉畫的模糊效果铸题;處理時間比較長铡恕,慎用115116#import"GPUImageMosaicFilter.h"http://黑白馬賽克117#import"GPUImagePixellateFilter.h"http://像素化118#import"GPUImagePolarPixellateFilter.h"http://同心圓像素化119#import"GPUImageCrosshatchFilter.h"http://交叉線陰影,形成黑白網(wǎng)狀畫面120#import"GPUImageColorPackingFilter.h"http://色彩丟失回挽,模糊(類似監(jiān)控攝像效果)121122#import"GPUImageVignetteFilter.h"http://暈影没咙,形成黑色圓形邊緣猩谊,突出中間圖像的效果123#import"GPUImageSwirlFilter.h"http://漩渦千劈,中間形成卷曲的畫面124#import"GPUImageBulgeDistortionFilter.h"http://凸起失真,魚眼效果125#import"GPUImagePinchDistortionFilter.h"http://收縮失真牌捷,凹面鏡126#import"GPUImageStretchDistortionFilter.h"http://伸展失真墙牌,哈哈鏡127#import"GPUImageGlassSphereFilter.h"http://水晶球效果128#import"GPUImageSphereRefractionFilter.h"http://球形折射涡驮,圖形倒立129130#import"GPUImagePosterizeFilter.h"http://色調(diào)分離,形成噪點效果131#import"GPUImageCGAColorspaceFilter.h"http://CGA色彩濾鏡喜滨,形成黑捉捅、淺藍、紫色塊的畫面132#import"GPUImagePerlinNoiseFilter.h"http://柏林噪點虽风,花邊噪點133#import"GPUImage3x3ConvolutionFilter.h"http://3x3卷積棒口,高亮大色塊變黑,加亮邊緣辜膝、線條等134#import"GPUImageEmbossFilter.h"http://浮雕效果无牵,帶有點3d的感覺135#import"GPUImagePolkaDotFilter.h"http://像素圓點花樣136#import"GPUImageHalftoneFilter.h"http://點染,圖像黑白化,由黑點構(gòu)成原圖的大致圖形137138139#pragmamark - 混合模式 Blend140141#import"GPUImageMultiplyBlendFilter.h"http://通常用于創(chuàng)建陰影和深度效果142#import"GPUImageNormalBlendFilter.h"http://正常143#import"GPUImageAlphaBlendFilter.h"http://透明混合,通常用于在背景上應用前景的透明度144#import"GPUImageDissolveBlendFilter.h"http://溶解145#import"GPUImageOverlayBlendFilter.h"http://疊加,通常用于創(chuàng)建陰影效果146#import"GPUImageDarkenBlendFilter.h"http://加深混合,通常用于重疊類型147#import"GPUImageLightenBlendFilter.h"http://減淡混合,通常用于重疊類型148#import"GPUImageSourceOverBlendFilter.h"http://源混合149#import"GPUImageColorBurnBlendFilter.h"http://色彩加深混合150#import"GPUImageColorDodgeBlendFilter.h"http://色彩減淡混合151#import"GPUImageScreenBlendFilter.h"http://屏幕包裹,通常用于創(chuàng)建亮點和鏡頭眩光152#import"GPUImageExclusionBlendFilter.h"http://排除混合153#import"GPUImageDifferenceBlendFilter.h"http://差異混合,通常用于創(chuàng)建更多變動的顏色154#import"GPUImageSubtractBlendFilter.h"http://差值混合,通常用于創(chuàng)建兩個圖像之間的動畫變暗模糊效果155#import"GPUImageHardLightBlendFilter.h"http://強光混合,通常用于創(chuàng)建陰影效果156#import"GPUImageSoftLightBlendFilter.h"http://柔光混合157#import"GPUImageChromaKeyBlendFilter.h"http://色度鍵混合158#import"GPUImageMaskFilter.h"http://遮罩混合159#import"GPUImageHazeFilter.h"http://朦朧加暗160#import"GPUImageLuminanceThresholdFilter.h"http://亮度閾161#import"GPUImageAdaptiveThresholdFilter.h"http://自適應閾值162#import"GPUImageAddBlendFilter.h"http://通常用于創(chuàng)建兩個圖像之間的動畫變亮模糊效果163#import"GPUImageDivideBlendFilter.h"http://通常用于創(chuàng)建兩個圖像之間的動畫變暗模糊效果164165166#pragmamark - 尚不清楚167#import"GPUImageJFAVoroniFilter.h"168#import"GPUImageVoroniConsumerFilter.h"

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末厂抖,一起剝皮案震驚了整個濱河市茎毁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌忱辅,老刑警劉巖七蜘,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異墙懂,居然都是意外死亡橡卤,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進店門损搬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蒜魄,“玉大人,你說我怎么就攤上這事场躯√肝” “怎么了?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵踢关,是天一觀的道長伞鲫。 經(jīng)常有香客問我,道長签舞,這世上最難降的妖魔是什么秕脓? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮儒搭,結(jié)果婚禮上吠架,老公的妹妹穿的比我還像新娘。我一直安慰自己搂鲫,他們只是感情好傍药,可當我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般拐辽。 火紅的嫁衣襯著肌膚如雪拣挪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天俱诸,我揣著相機與錄音菠劝,去河邊找鬼。 笑死睁搭,一個胖子當著我的面吹牛赶诊,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播园骆,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼甫何,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了遇伞?” 一聲冷哼從身側(cè)響起辙喂,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎鸠珠,沒想到半個月后巍耗,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡渐排,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年炬太,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片驯耻。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡亲族,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出可缚,到底是詐尸還是另有隱情霎迫,我是刑警寧澤,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布帘靡,位于F島的核電站知给,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏描姚。R本人自食惡果不足惜涩赢,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望轩勘。 院中可真熱鬧筒扒,春花似錦、人聲如沸绊寻。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至观游,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間驮俗,已是汗流浹背懂缕。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留王凑,地道東北人搪柑。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像索烹,于是被迫代替她去往敵國和親工碾。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內(nèi)容

  • http://blog.csdn.net/kangguang/article/details/51658683 G...
    Skylpy閱讀 1,244評論 0 0
  • GPUImage是現(xiàn)在做濾鏡最主流的開源框架百姓,沒有之一渊额。作者BradLarson基于openGL對圖片處理單元進行...
    清蘂翅膀的技術閱讀 14,472評論 1 13
  • GPUImage接入 下載GPUImage 地址 : https://github.com/BradLarson/...
    夜空丶閱讀 3,697評論 1 1
  • 簡述: 基于GPU的圖像加速,因此可以加速對實時攝像頭視頻垒拢、電影以及image的濾鏡和其它效果處理旬迹,并且能夠自定義...
    wonderstruck閱讀 3,346評論 6 5
  • GPUImage的簡單使用 GPUImage 是一個開源的圖像處理庫,提供了非常多的濾鏡效果來加工圖片求类。GPUIm...
    困惑困惑困惑閱讀 442評論 0 1