Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 重新加载ViewController时GPUImageView为黑色_Ios_Objective C_Gpuimage - Fatal编程技术网

Ios 重新加载ViewController时GPUImageView为黑色

Ios 重新加载ViewController时GPUImageView为黑色,ios,objective-c,gpuimage,Ios,Objective C,Gpuimage,使用下面的代码(在viewDidLoad中),当我第一次从另一个视图切换到这个静止的相机视图(按下按钮)时,一切都正常。然后我发出一个委托,并将此视图从上一个视图中删除 但是,当我再次按下第一个视图上的按钮以再次显示相机视图时,屏幕是黑色的。我已经将属性更改为实例变量,确保每个步骤都存在预览视图,等等 但是,当我拍摄一张照片(即使屏幕是黑色的,它记录了焦点和曝光活动,并对触摸做出响应)并显示一个模式视图,显示图像以供查看时,我确实看到了我应该看到的东西。当我取消模式时,相机视图再次正常工作,没有

使用下面的代码(在viewDidLoad中),当我第一次从另一个视图切换到这个静止的相机视图(按下按钮)时,一切都正常。然后我发出一个委托,并将此视图从上一个视图中删除

但是,当我再次按下第一个视图上的按钮以再次显示相机视图时,屏幕是黑色的。我已经将属性更改为实例变量,确保每个步骤都存在预览视图,等等

但是,当我拍摄一张照片(即使屏幕是黑色的,它记录了焦点和曝光活动,并对触摸做出响应)并显示一个模式视图,显示图像以供查看时,我确实看到了我应该看到的东西。当我取消模式时,相机视图再次正常工作,没有黑色

那么,我错过了什么?它必须是一些简单的框架,IB,故事板等。谢谢

stillCamera = [[GPUImageStillCamera alloc] initWithSessionPreset:AVCaptureSessionPresetPhoto cameraPosition:AVCaptureDevicePositionBack];
stillCamera.outputImageOrientation = UIInterfaceOrientationLandscapeLeft;

UIImage *inputImage = [UIImage imageNamed:@"blank-1x1.png"];
sourcePicture = [[GPUImagePicture alloc] initWithImage:inputImage smoothlyScaleOutput:YES];
[sourcePicture processImage];

filter = [[GPUImageChromaKeyBlendFilter alloc] init];
[(GPUImageChromaKeyBlendFilter *)filter setColorToReplaceRed:0.0 green:1.0 blue:0.0];
[(GPUImageChromaKeyBlendFilter *)filter setThresholdSensitivity:0.37f];

[stillCamera addTarget:filter];
[sourcePicture addTarget:filter];

[filter addTarget:videoPreviewView];
[stillCamera startCameraCapture];

我建议仔细阅读这篇文章,特别是这篇评论:。希望它也能帮助您。

遇到同样的问题。GPUImageView内容是黑色的,但我可以看到图像数据在过滤器链中正确移动,因为我可以存储生成的UIImage并将其保存到photo roll。Blackness从不在视图控制器第一次出现时显示,也不是每次再次显示时显示(在再次显示之前等待一段时间似乎会降低失败的可能性)。在显示包含gpuimageview的viewcontroller并将其关闭几十次后,我最终也成功地发生了崩溃。可能是一个提示:我发现只有当我的场景中有一个GPUImageView并通过引用出口引用,然后将该引用提供给[self.filter addTarget:(GPUImageView*)self.GPUImageView]时,才会发生这种情况;如果取而代之,我将ViewController的根视图(?)设置为GPUImageView,然后在[self.filter addTarget:(GPUImageView*)self.view]中使用它;我在所有排列中添加了代码(prepareForImageCapture),并且在框架代码中的destroyFilterFBO中获得了malloc双自由错误。Bemmu建议将imageView设置为视图控制器的根视图,而不是将imageView设置为子视图。嗯,这不要紧,我可能想要一个取景器作为另一个视图中的某个子视图。