AVCaptureVideoPreviewLayer
全部标签 我有一个UIView@property(nonatomic,strong)IBOutletUIView*previewView;previewView最终将使用以下预览层在我的iPhone上显示我的相机中发生的事情的预览。@property(nonatomic,strong)AVCaptureVideoPreviewLayer*previewLayer;我在Storyboard中的previewView上设置了约束,因此遇到了以下问题。self.previewLayer.frame=self.previewView.bounds;//Thisdoesn'tworkself.previe
拍照后尝试捕捉绿色取景器中的内容。请看图片:这是代码当前正在做的事情:拍照前:拍照后(结果图像的比例不正确,因为它与绿色取景器中的不匹配):如您所见,图像需要按比例放大以适合绿色取景器中最初包含的内容。即使我计算出正确的缩放比例(对于iPhone6,我需要将捕获图像的尺寸乘以1.334,它不起作用)有什么想法吗? 最佳答案 解决这个问题的步骤:首先,获取全尺寸图像:我还使用了一个名为“correctlyOriented”的UIImage类扩展。letcorrectImage=UIImage(data:imageData!)!.cor
我想在方形UIView中显示相机预览。这就是我正在做的:previewLayer!.connection?.videoOrientation=AVCaptureVideoOrientation.PortraitmySquareView.layer.addSublayer(previewLayer)结果是相机预览自动调整大小以完全适合View。我希望它水平适合并垂直裁剪。怎么做? 最佳答案 使用previewLayer.videoGravity=AVLayerVideoGravityResizeAspectFill
我的View顶部有一个导航栏。我正在添加一个AVCaptureVideoPreviewLayer,但它的定位方式在导航栏底部和预览层顶部之间存在间隙。self.view.backgroundColor=UIColor.redColor()varnavBarFrame=CGRectMake(0,0,self.view.frame.width,64.0)varnavBar=UINavigationBar(frame:navBarFrame)varnavItem=UINavigationItem()navItem.title="zzzz"navBar.pushNavigationItem(n
我基本上是在回答这个问题AVCaptureVideoPreviewLayerorientation-needlandscape除了在Swift中。我的目标是iOS8,AVCaptureVideoPreviewLayer似乎没有setVideoOrientation函数。我应该如何检测方向已经改变,并适本地旋转AVCaptureVideoPreviewLayer? 最佳答案 检测并在viewWillLayoutSubviews中应用它,或者如果您在layoutSubviews中使用UIView子类。方法如下:overridefuncv
我有一个UITabBarController,它有4个项目选项卡。其中之一是AvCaptureVideoPreviewLayer(是条形码扫描仪)。我想做的是仅针对AVCaptureVideoPreviewLayer(如iOS相机应用程序)禁用自动旋转,但不会针对随屏幕旋转的itembar禁用自动旋转。这是一个有点困难的情况,因为我认为UITabBarConrtoller不允许您轻松禁用旋转。我的相机View的代码是:importUIKitimportAVFoundationclassScannerViewController:UIViewController,//MARK:Prope
问题我有一个sampleapplicationfromApple(SquareCam)我将其用作为相机创建自定义界面的引用。我正在使用AVFoundation框架。如果我从Apple构建并运行该项目,该应用程序将按预期运行。但是,如果我从该项目中获取相同的代码并将其放置在Xcode中的新项目中,则不会显示视频预览。我已将代码简化为运行视频预览层的基本组件。同样,此代码在Apple(SquareCam)项目中运行良好,但不会显示在我的新项目中。代码-(void)setupAVCapture{NSError*error=nil;AVCaptureSession*session=[AVCap
我试图让相机输入显示在预览图层View上。self.cameraPreviewView绑定(bind)到IB中的UIView这是我从AVFoundationProgrammingGuide中整理出来的当前代码。但是预览从不显示AVCaptureSession*session=[[AVCaptureSessionalloc]init];session.sessionPreset=AVCaptureSessionPresetHigh;AVCaptureDevice*device=[AVCaptureDevicedefaultDeviceWithMediaType:AVMediaTypeVi
我有一个使用AVFoundation的照片应用程序。我已经使用占据屏幕上半部分的AVCaptureVideoPreviewLayer设置了一个预览层。因此,当用户尝试拍照时,他们只能看到屏幕的上半部分。效果很好,但是当用户实际拍摄照片并且我尝试将照片设置为图层的内容时,图像失真了。我做了研究,意识到我需要裁剪图像。我想做的就是裁剪完整的捕获图像,这样剩下的就是用户最初在屏幕上半部分看到的内容。我已经能够完成此操作,但我是通过输入手动CGRect值来完成此操作的,但它看起来仍然不完美。必须有一种更简单的方法来做到这一点。在过去的2天里,我确实浏览了stackoverflow上所有关于裁剪
我试图禁用对AVCaptureVideoPreviewLayer的任何可辨别的方向旋转,同时仍然保持任何subview的旋转。AVCaptureVideoPreviewLayer确实有一个方向属性,并且更改它确实允许图层在任何方向上正确显示。但是,旋转涉及AVCaptureVideoPreviewLayer的一些时髦旋转,而不是像在相机应用程序中那样保持平滑。这就是我如何获得方向以正常工作,减去旋转中的障碍:-(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation{