GPUImage
-
處理頭像的框架
- 使用
Core Graphics
庫 (系統) - 使用
Core Image
庫 (系統) - 使用
GPUImage
庫 (第三方)
- 使用
-
github地址 : https://github.com/BradLarson/GPUImage
- CocoaPods整合 :
pod 'GPUImage'
影像處理原理
- 每個畫素點都有亮度值/畫素值,即RGB的色值平均值
- 影像處理的基礎是處理畫素值
濾鏡基本使用
獲取原圖
- (void)loadOriginImage { NSString *path = [[NSBundle mainBundle] pathForResource:@"filter.jpg" ofType:nil]; UIImage *originImage = [UIImage imageWithContentsOfFile:path]; // 記錄原始圖片 _originImage = originImage; self.imgView.image = originImage; }
濾鏡使用步驟
- 獲取原始圖片
GPUImagePicture
- 建立濾鏡
GPUImageSepiaFilter (以懷舊濾鏡為例)
- 向圖片新增濾鏡
[Picture addTarget:Filter];
- 開始處理/渲染圖片
[Filter useNextFrameForImageCapture];[Picture processImage];
- 輸出處理後的圖片
UIImage *outputImage = [Filter imageFromCurrentFramebuffer];
- 展示濾鏡處理後的圖片
imageView.image = outputImage;
懷舊濾鏡
- (IBAction)huaijiuImage:(id)sender { // 1.獲取原始圖片,指定為GPUImagePicture GPUImagePicture *GPUPicture = [[GPUImagePicture alloc] initWithImage:_originImage]; // 2.建立`懷舊`濾鏡 GPUImageSepiaFilter *sepiaFilter = [GPUImageSepiaFilter new]; // 3.向圖片新增濾鏡 [GPUPicture addTarget:sepiaFilter]; // 4.開始處理/渲染圖片 [sepiaFilter useNextFrameForImageCapture]; [GPUPicture processImage]; // 5.輸出處理後的圖片 UIImage *outputImage = [sepiaFilter imageFromCurrentFramebuffer]; // 6.展示濾鏡處理後的圖片 self.imgView.image = outputImage; /* 其中2~6步,可以替換成以下程式碼(簡寫) */ // self.imgView.image = [sepiaFilter imageByFilteringImage:_originImage]; }
高斯模糊濾鏡
- (IBAction)gaussianBlurImage:(id)sender { // 1.獲取原始圖片,指定為GPUImagePicture GPUImagePicture *GPUPicture = [[GPUImagePicture alloc] initWithImage:_originImage]; // 2.建立`高斯模糊`濾鏡 GPUImageGaussianBlurFilter *gaussianBlurFilter = [GPUImageGaussianBlurFilter new]; // 3.向圖片新增濾鏡 [GPUPicture addTarget:gaussianBlurFilter]; // 4.開始處理/渲染圖片 [gaussianBlurFilter useNextFrameForImageCapture]; [GPUPicture processImage]; // 5.輸出處理後的圖片 UIImage *outputImage = [gaussianBlurFilter imageFromCurrentFramebuffer]; // 6.展示濾鏡處理後的圖片 self.imgView.image = outputImage; /* 其中2~6步,可以替換成以下程式碼(簡寫) */ // self.imgView.image = [gaussianBlurFilter imageByFilteringImage:_originImage]; }
素描濾鏡
- (IBAction)sumioaImage:(id)sender { // 1.獲取原始圖片,指定為GPUImagePicture GPUImagePicture *GPUPicture = [[GPUImagePicture alloc] initWithImage:_originImage]; // 2.建立`素描`濾鏡 GPUImageSketchFilter *sketchFilter = [GPUImageSketchFilter new]; // 3.向圖片新增濾鏡 [GPUPicture addTarget:sketchFilter]; // 4.開始處理/渲染圖片 [sketchFilter useNextFrameForImageCapture]; [GPUPicture processImage]; // 5.輸出濾鏡處理後的圖片 UIImage *outputImage = [sketchFilter imageFromCurrentFramebuffer]; // 6.展示濾鏡處理後的圖片 self.imgView.image = outputImage; /* 其中2~6步,可以替換成以下程式碼(簡寫) */ // self.imgView.image = [sketchFilter imageByFilteringImage:_originImage]; }
相關文章
- GPUImage使用GPUUI
- GPUImage移植總結GPUUI
- GPUImage濾鏡列表GPUUI
- GPUImage之拍照篇GPUUI
- GPUImage之裁剪篇GPUUI
- GPUImage之攝像篇GPUUI
- OpenGL 之 GPUImage 原始碼分析GPUUI原始碼
- GPUImage原始碼閱讀(概述)GPUUI原始碼
- GPUImage濾鏡之銳化GPUUI
- Vulkan移植GPUImage的安卓Demo展示GPUUI安卓
- 在 GPUImage 中實現 ColorConversionGPUUI
- 教你實現GPUImage【OpenGL渲染原理】GPUUI
- iOS 新增 GPUImage 到自己的工程!iOSGPUUI
- 影象處理庫GPUImage簡單使用GPUUI
- GPUImage濾鏡之自然飽和度GPUUI
- Vulkan移植GpuImage(三)從A到C的濾鏡GPUUI
- Vulkan移植GpuImage(四)從D到O的濾鏡GPUUI
- Vulkan移植GPUImage(五)從P到Z的濾鏡GPUUI
- 基於GPUImage的美顏BeautifyFace詳細註釋GPUUI
- Xcode 9.0 beta 3 GPUImage崩潰問題(presentBufferForDisplay)XCodeGPUUI
- iOS圖形處理概論:OpenGL ES,Metal,Core Graphics,Core Image,GPUImage,OpenCV等iOSGPUUIOpenCV
- 1小時學會:最簡單的iOS直播推流(四)如何使用GPUImage,如何美顏iOSGPUUI