GPUImage是一個(gè)基于GPU圖像和視頻處理的開源iOS框架,提供各種各樣的圖像處理濾鏡,并且支持照相機(jī)和攝像機(jī)的實(shí)時(shí)濾鏡蝶棋。
使用GPUImage處理圖片比CoreImage更簡(jiǎn)單赐稽,只需要將過濾器賦給圖片對(duì)象即可,不需要考慮context或者設(shè)備等其他問題国觉。
GPUImage是現(xiàn)在做濾鏡最主流的開源框架吧恃,沒有之一。作者BradLarson基于openGL對(duì)圖片處理單元進(jìn)行封裝麻诀,提供出GPUImageFilter基類痕寓,配合shader,常用濾鏡都拿下不是問題蝇闭。
我們通常使用cocoa pods導(dǎo)入GPUImage框架
一呻率、GPUImage基本概念
GPUImage中的有幾個(gè)概念:
? output,輸出源
? intput呻引,輸入源
? filter礼仗,濾鏡
一個(gè)完整的濾鏡處理流程是: output+X+input,X就是濾鏡組(1+個(gè)濾鏡)。
GPUImage為了方便元践,新版本中提供了GPUImageFilterPipeline(濾鏡管道) 這個(gè)東西韭脊,方便用戶使用多個(gè)濾鏡組合,不用擔(dān)心前后的鏈?zhǔn)竭壿嫛?/p>
GPUImage將圖片濾鏡處理和動(dòng)態(tài)濾鏡分開了
1单旁、動(dòng)態(tài)濾鏡是按照濾鏡處理流程是: output+X+input沪羔。
2、圖片處理卻是以(output+filter)*X + input這種邏輯象浑。
二蔫饰、輸入源
輸入源作為響應(yīng)鏈的起點(diǎn)。這些基礎(chǔ)類會(huì)把圖像作為紋理愉豺,傳給OpenGL ES處理篓吁,然后把紋理傳遞給響應(yīng)鏈的下一個(gè)對(duì)象。
GPUImage的四大輸入基礎(chǔ)類
GPUImageVideoCamera 攝像頭-視頻流
GPUImageStillCamera 攝像頭-照相
GPUImagePicture 圖片
GPUImageMovie 視頻
三蚪拦、輸出源
GPUImageFramebuffer就是用來管理紋理緩存的格式與讀寫幀緩存的buffer杖剪。
三、filter外盯,濾鏡
GPUImageFilter就是用來接收源圖像摘盆,通過自定義的頂點(diǎn)、片元著色器來渲染新的圖像饱苟,并在繪制完成后通知響應(yīng)鏈的下一個(gè)對(duì)象孩擂。
詳細(xì)介紹參考http://www.reibang.com/nb/4268718