1

私は現在、GPUImage フレームワークを使用する必要があるカメラ フィルター アプリに取り組んでいます。私はすでにカスタム カメラを動作させています。取得した uiview にフィルターを 1 つだけ適用したいと考えています。したがって、フィルターは常に UIView にあり、フィルターを使用して写真を保存する必要があります。あなたが私を助けることができれば、私は本当に感謝しています

4

1 に答える 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 に答える