AVfoundation中焦距的设置(slider实现拉近拉远镜头)
2014-01-02 15:51
387 查看
首先设置一个slider
UISlider focusSlider = [[UISlideralloc]initWithFrame:CGRectMake(60,_bottomView.frame.origin.y-60,200,20)];
[focusSlideraddTarget:selfaction:@selector(AdjustFocusAction:)forControlEvents:UIControlEventValueChanged];
[focusSlidersetThumbImage:[UIImageimageNamed:@"camera_view_slider_take_gray.png"]forState:UIControlStateNormal];
[focusSlidersetMinimumTrackImage:[UIImageimageNamed:@"camera_view_sliderbar_gray.png"]forState:UIControlStateNormal];
[focusSlidersetMaximumTrackImage:[UIImageimageNamed:@"camera_view_sliderbar_gray.png"]forState:UIControlStateNormal];
[focusSlidersetBackgroundColor:[UIColorclearColor]];
[focusSlidersetMaximumValue:1];
[focusSlidersetMinimumValue:0];
[focusSlider
setValue:0.0];
[self.viewaddSubview:focusSlider];
以下做一下有关相机的设置(只写出来了其中一部分,并非全部)
preview = [AVCaptureVideoPreviewLayerlayerWithSession:self.session];
self.preview.frame =CGRectMake(0,0,
self.cameraView.frame.size.width,self.cameraView.frame.size.height);
[self.previewsetPosition:CGPointMake(CGRectGetMidX(self.cameraView.bounds),CGRectGetMidY(self.cameraView.bounds))];
self.preview.videoGravity =AVLayerVideoGravityResize;
[self.cameraView.layeraddSublayer:self.preview];
captureOutput
= (AVCaptureStillImageOutput*)[self.session.outputsobjectAtIndex:0];
focusConnection =[captureOutput connectionWithMediaType:AVMediaTypeVideo];
调节焦距
-(void)AdjustFocusAction:(id)sender
{
[UIViewanimateWithDuration:0.025animations:^{
[self.previewsetAffineTransform:CGAffineTransformMakeScale([(UISlider
*)sendervalue]+1, [(UISlider *)sendervalue]+1)];
focusConnection.videoScaleAndCropFactor = [(UISlider *)sendervalue]+1;
}];
}
UISlider focusSlider = [[UISlideralloc]initWithFrame:CGRectMake(60,_bottomView.frame.origin.y-60,200,20)];
[focusSlideraddTarget:selfaction:@selector(AdjustFocusAction:)forControlEvents:UIControlEventValueChanged];
[focusSlidersetThumbImage:[UIImageimageNamed:@"camera_view_slider_take_gray.png"]forState:UIControlStateNormal];
[focusSlidersetMinimumTrackImage:[UIImageimageNamed:@"camera_view_sliderbar_gray.png"]forState:UIControlStateNormal];
[focusSlidersetMaximumTrackImage:[UIImageimageNamed:@"camera_view_sliderbar_gray.png"]forState:UIControlStateNormal];
[focusSlidersetBackgroundColor:[UIColorclearColor]];
[focusSlidersetMaximumValue:1];
[focusSlidersetMinimumValue:0];
[focusSlider
setValue:0.0];
[self.viewaddSubview:focusSlider];
以下做一下有关相机的设置(只写出来了其中一部分,并非全部)
preview = [AVCaptureVideoPreviewLayerlayerWithSession:self.session];
self.preview.frame =CGRectMake(0,0,
self.cameraView.frame.size.width,self.cameraView.frame.size.height);
[self.previewsetPosition:CGPointMake(CGRectGetMidX(self.cameraView.bounds),CGRectGetMidY(self.cameraView.bounds))];
self.preview.videoGravity =AVLayerVideoGravityResize;
[self.cameraView.layeraddSublayer:self.preview];
captureOutput
= (AVCaptureStillImageOutput*)[self.session.outputsobjectAtIndex:0];
focusConnection =[captureOutput connectionWithMediaType:AVMediaTypeVideo];
调节焦距
-(void)AdjustFocusAction:(id)sender
{
[UIViewanimateWithDuration:0.025animations:^{
[self.previewsetAffineTransform:CGAffineTransformMakeScale([(UISlider
*)sendervalue]+1, [(UISlider *)sendervalue]+1)];
focusConnection.videoScaleAndCropFactor = [(UISlider *)sendervalue]+1;
}];
}
相关文章推荐
- AVfoundation中焦距的设置(slider实现拉近拉远镜头) -自定义UISlider
- AVCaptureDevice中通过调用VideoZoomFactor方法调整焦距实现拉近拉远镜头进行拍照录制视频(动画缩放画面,不闪屏)
- unity3D鼠标滚轮来实现镜头拉近拉远及视角旋转
- 镜头的由远到近的镜头拉近效果实现
- AVCapture中实现拉近拉远镜头
- 使用AVFoundation实现iOS原生二维码、条形码扫描(可限制扫描范围、可手动调节焦距)
- AVCapture中实现拉近拉远镜头
- iOS 扫描二维码实现手势拉近拉远镜头
- AVCapture中实现拉近拉远镜头
- windows下通过bat脚本和计划任务实现设置某一服务的守护进程
- thinkphp5行为扩展实现html静态缓存设置
- ubuntu10.4设置桥接方式实现开发板和虚拟机之间通讯
- 关于Xib中设置label换行,而没有实现的问题
- 打印的简单实现,以及更改打印设置
- LSettingView--- 让你更加快速的实现设置界面
- ECLIPSE链接脚本设置--实现分散加载
- Excel设置数据有效性实现单元格下拉菜单的3种方法(转)
- Android设置界面实现
- easysize的使用方法 (实现控件大小位置随界面变化而有相应的变化,这个变化可以自己设置)
- unreal4 蓝图实现步骤——设置For 循环