GPUImage 極簡使用

單張圖片處理

1.單個(gè)濾鏡

//設(shè)置濾鏡
[self.filter useNextFrameForImageCapture];
[self.filter forceProcessingAtSizeRespectingAspectRatio:self.image.size];
self.filter.brightness = 0.5;

// 傳入要處理的圖片
GPUImagePicture *picture = [[GPUImagePicture alloc] initWithImage:self.image];
// 給圖片添加濾鏡
[picture addTarget:self.filter];

//渲染
[picture processImage];

//從濾鏡中獲取圖片
[self.imageView setImage:self.filter.imageFromCurrentFramebuffer];

2.濾鏡組

//第一個(gè)濾鏡
self.filter1 = [[GPUImageBrightnessFilter alloc] init];
self.filter1.brightness = 0.0;
    
//第二個(gè)濾鏡
self.filter2 = [[GPUImageSaturationFilter alloc] init];
self.filter2.saturation = 1.0;
    
//濾鏡組
self.groupFilter = [[GPUImageFilterGroup alloc] init];
[self.groupFilter addTarget:self.filter1];
[self.groupFilter addTarget:self.filter2];
[self.groupFilter forceProcessingAtSizeRespectingAspectRatio:self.image.size];
    
//濾鏡間的依賴關(guān)系,一個(gè)濾鏡處理好后再去處理下一個(gè)濾鏡
[self.filter1 addTarget:self.filter2];
[self.groupFilter setInitialFilters:[NSArray arrayWithObject:self.filter1]];
[self.groupFilter setTerminalFilter:self.filter2];
    
//輸入源
GPUImagePicture *picture = [[GPUImagePicture alloc] initWithImage:self.image];
[picture addTarget:self.groupFilter];
   
 //處理圖片并獲取輸出 
[self.groupFilter useNextFrameForImageCapture];
[picture processImage];
[self.imageView setImage:self.groupFilter.imageFromCurrentFramebuffer];

3.美顏相機(jī)

//創(chuàng)建相機(jī)
self.Camera = [[GPUImageStillCamera alloc] initWithSessionPreset:AVCaptureSessionPreset640x480 cameraPosition:AVCaptureDevicePositionFront];
self.Camera.outputImageOrientation = UIInterfaceOrientationPortrait;

//創(chuàng)建濾鏡
self.filter = [[GPUImageSaturationFilter alloc] init];
self.filter.saturation = 1.0;
    
//相機(jī)上添加濾鏡    
[self.Camera addTarget:self.filter];
    
//圖片處理后的輸出展示
self.GPUImageView = [[GPUImageView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT-64)];
[self.view addSubview:self.GPUImageView];

//輸出結(jié)果要給顯示
[self.filter addTarget:self.GPUImageView];

//開始捕獲圖像
[self.Camera startCameraCapture];

//拍照獲取的圖片
 [self.Camera capturePhotoAsJPEGProcessedUpToFilter:self.filter withCompletionHandler:^(NSData *processedJPEG, NSError *error) {
        
  
        
    }];

4.視屏錄制

初始化設(shè)置
initWithMovieURL:size 視屏保存的地址和視頻的大小
startRecording 開始錄制
[filter addTarget:self.movieWriter] 添濾鏡
[self.movieWriter startRecording] 開始錄制
[self.videoCamera pauseCameraCapture]; 暫停
[self.videoCamera resumeCameraCapture]; 恢復(fù)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • GPUImage作為一個(gè)很強(qiáng)大很強(qiáng)大很強(qiáng)大的圖形處理工具,可以處理圖片,視頻.超爽的. 廢話不多說,第一天大概我就...
    今年27閱讀 328評(píng)論 0 0
  • GPUImage 作為一個(gè)優(yōu)秀的視頻處理框架,不可謂不流行,so,我也蹭一下。一下通過代碼來告訴大家怎么實(shí)現(xiàn)視頻錄...
    往事如煙_想戒_難閱讀 1,114評(píng)論 0 3
  • #直播總結(jié) ##1.概述 關(guān)于直播的技術(shù)文章不少,成體系的不多。我們將用這篇文章,更系統(tǒng)化地介紹當(dāng)下大熱的視頻直播...
    蓋世英雄_ix4n04閱讀 1,483評(píng)論 0 2
  • 不知道從何時(shí)起我們喜歡標(biāo)榜自己很忙,以此體現(xiàn)自己的“顯要感”。 好似只要忙碌就表明我們有價(jià)值,很重要,地球離了我們...
    吾愛絲語閱讀 823評(píng)論 0 4
  • 友情提示:本文純屬個(gè)人見解,不構(gòu)成投資建議。 了解過金融學(xué)的人應(yīng)該都知道,最大的價(jià)格波動(dòng)其實(shí)來自證券市場自身的波動(dòng)...
    kk的思考日記閱讀 379評(píng)論 0 0

友情鏈接更多精彩內(nèi)容