のセットを作成GPUImageToneCurveFilter
して配列に格納します。
最初に、フィルター詳細ビュー (GPUImageStillCamera ) を追加しようとしているフィルターを選択した後、GPUImageVideoCamera を使用してすべてのフィルターのプレビュー ビデオ ビューを作成しています。しかし、私はこれのために黒い画面を取得しています。
再利用する代わりに新しいフィルターを再作成してから GPUImageStillCamera に追加すると、正常に動作します。これに対する任意の解決策。
プレビュー ビュー作成コード:
-(void)setUpUI{
self.videoView.fillMode = kGPUImageFillModePreserveAspectRatioAndFill;
}
-(void)addFilter:(id)filter
{
// For thumbnails smaller than the input video size, we currently need to make them render at a smaller size.
// This is to avoid wasting processing time on larger frames than will be displayed.
// You'll need to use -forceProcessingAtSize: with a zero size to re-enable full frame processing of video.
self.filter = filter;
[filter forceProcessingAtSize:self.videoView.sizeInPixels];
[[CameraProvider sharedProvider] addTarget:filter];
[filter addTarget:self.videoView];
[[CameraProvider sharedProvider] startCameraCapture];
self.titleLabel.text = [filter fliterName];
}
-(void)stopCamera
{
[self.filter removeAllTargets];
[[CameraProvider sharedProvider] removeTarget:self.filter];
[[CameraProvider sharedProvider] stopCameraCapture];
}
-(IBAction)selectionDone:(id)sender {
[[CameraProvider sharedProvider] removeInputsAndOutputs];
self.selectedFilter(self.filter);
}
// Adding to detail view (GPUImageStillCamera0:
- (void)didSelectFilter:(id)newfilter;
{
NSLog(@"fliter");
// newfilter = [[GPUImageToneCurveFilter alloc] initWithACV:@"california-gold-rush.acv"];
[newfilter prepareForImageCapture];
[stillCamera addTarget:newfilter];
[newfilter addTarget:self.imageView];
[stillCamera startCameraCapture];
}