AVCapture中实现拉近拉远镜头
2013-12-13 18:20
726 查看
自己用avcapture实现自定制相机,系统相机是可以拉近拉远镜头的,网上搜寻了半天始终没有发现,刚才又翻看了半天的api接口,终于找到了,原来他藏在AVCaptureConnection中,videoScaleAndCropFactor:缩放裁剪系数。简单写了下使用方法:
AVCaptureStillImageOutput* output = (AVCaptureStillImageOutput*)[self.captureSession.outputs objectAtIndex:0];
AVCaptureConnection *videoConnection = [output connectionWithMediaType:AVMediaTypeVideo];
CGFloat maxScale = videoConnection.videoMaxScaleAndCropFactor;
CGFloat zoom = maxScale / 50;
if (zoom < 1.0f || zoom > maxScale)
{
return;
}
videoConnection.videoScaleAndCropFactor += zoom;
self.preVideoView.transform = CGAffineTransformScale(self.preVideoView.transform, zoom, zoom);
其中preVideoView的layer中添加了AVCaptureVideoPreviewLayer。
有一点需要注意:the videoScaleAndCropFactor property may be set to a value in the range of 1.0 to videoMaxScaleAndCropFactor,videoScaleAndCropFactor这个属性取值范围是1.0-[b]videoMaxScaleAndCropFactor,如果你设置超出范围会崩溃哦![/b]
AVCaptureStillImageOutput* output = (AVCaptureStillImageOutput*)[self.captureSession.outputs objectAtIndex:0];
AVCaptureConnection *videoConnection = [output connectionWithMediaType:AVMediaTypeVideo];
CGFloat maxScale = videoConnection.videoMaxScaleAndCropFactor;
CGFloat zoom = maxScale / 50;
if (zoom < 1.0f || zoom > maxScale)
{
return;
}
videoConnection.videoScaleAndCropFactor += zoom;
self.preVideoView.transform = CGAffineTransformScale(self.preVideoView.transform, zoom, zoom);
其中preVideoView的layer中添加了AVCaptureVideoPreviewLayer。
有一点需要注意:the videoScaleAndCropFactor property may be set to a value in the range of 1.0 to videoMaxScaleAndCropFactor,videoScaleAndCropFactor这个属性取值范围是1.0-[b]videoMaxScaleAndCropFactor,如果你设置超出范围会崩溃哦![/b]
相关文章推荐
- AVCapture中实现拉近拉远镜头
- AVCaptureDevice中通过调用VideoZoomFactor方法调整焦距实现拉近拉远镜头进行拍照录制视频(动画缩放画面,不闪屏)
- unity3D鼠标滚轮来实现镜头拉近拉远及视角旋转
- AVfoundation中焦距的设置(slider实现拉近拉远镜头) -自定义UISlider
- AVfoundation中焦距的设置(slider实现拉近拉远镜头)
- AVCapture中实现拉近拉远镜头
- iOS 扫描二维码实现手势拉近拉远镜头
- 镜头的由远到近的镜头拉近效果实现
- cocos2d中镜头随着人物走实现方法
- 实现背景图片镜头模糊特效的jQuery插件
- 【Unity】代码实现视野的旋转和视野的拉近和拉远的效果
- 游戏开场镜头拉近(Unity3D开发之四)
- unity3d鼠标滚轮实现摄像头拉近后退
- Unity3D里的镜头实现淡入淡出用Color.color方法的实现
- unity 实现了鼠标滚动放大和缩小物体暨拉近拉远相机的效果
- Unity3D Shdaer 实现镜头模糊效果[Shader]
- AngryBird简单开发实现(二),zoom in/out的实现以及镜头跟随效果
- AVFoundation/AVCaptureSession实现自定义相机界面录像(三)
- ios使用AVCaptureVideoDataOutput实现连续拍照消除快门声音
- Ue4 BluePrint蓝图实现镜头(视角)切换及摆动范围(二)