1
我目前正在使用GPUImage框架的相機過濾器應用程序。 我已經得到了自定義相機的工作,現在我只想應用一個過濾器,我得到的uiview。所以過濾器一直在我的UIView上,它應該用過濾器保存圖片。 我會很感激,如果u能幫助我在CameraView上應用實時GpuImage
我目前正在使用GPUImage框架的相機過濾器應用程序。 我已經得到了自定義相機的工作,現在我只想應用一個過濾器,我得到的uiview。所以過濾器一直在我的UIView上,它應該用過濾器保存圖片。 我會很感激,如果u能幫助我在CameraView上應用實時GpuImage
該項目的主要自述說明你需要的具體步驟:
GPUImageVideoCamera *videoCamera = [[GPUImageVideoCamera alloc] initWithSessionPreset:AVCaptureSessionPreset640x480 cameraPosition:AVCaptureDevicePositionBack];
videoCamera.outputImageOrientation = UIInterfaceOrientationPortrait;
GPUImageFilter *customFilter = [[GPUImageFilter alloc] initWithFragmentShaderFromFile:@"CustomShader"];
GPUImageView *filteredVideoView = [[GPUImageView alloc] initWithFrame:CGRectMake(0.0, 0.0, viewWidth, viewHeight)];
// Add the view somewhere so it's visible
[videoCamera addTarget:customFilter];
[customFilter addTarget:filteredVideoView];
[videoCamera startCameraCapture];
首先,創建GPUImageCamera實例將拉動視頻直播。然後,你創建你想要的任何過濾器(上面的代碼中的一個自定義過濾器)並將其作爲你的相機的目標。最後,設置一個GPUImageView實例,在其中顯示已過濾的攝像頭提要,並將其作爲濾鏡的目標。結果,視頻幀將沿着從攝像機到過濾器的流水線向下流動。
如果您希望能夠保存照相機中的照片,則需要使用GPUImageStillCamera而不是上面的攝像機實例。靜止照相機將提供照相機的視頻預覽,並可讓您按需採集全分辨率照片。
同樣,所有這些在框架附帶的文檔中都有明確的說明(並顯示在GitHub項目的首頁上)。