私は現在、GPUImage フレームワークを使用する必要があるカメラ フィルター アプリに取り組んでいます。私はすでにカスタム カメラを動作させています。取得した uiview にフィルターを 1 つだけ適用したいと考えています。したがって、フィルターは常に UIView にあり、フィルターを使用して写真を保存する必要があります。あなたが私を助けることができれば、私は本当に感謝しています
質問する
2044 次
1 に答える
4
プロジェクトのメインの Readme には、これに必要な正確な手順が記載されています。
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 プロジェクトのフロント ページに表示されています)。
于 2013-06-12T20:17:49.720 に答える