ios学习--camera zoom with slider
来源:互联网 发布:综艺频道山东网络台 编辑:程序博客网 时间:2024/06/04 20:10
设置preview zoom的方式:
// create a uiview subclass for showing the camera feed
UIView *previewView= [[UIView alloc] initWithFrame:CGRectMake(0,0, 320, 430)];
[[self view] addSubview:previewView];
CGRect layerRect =CGRectMake(0,0, 320, 430);
[[self avCaptureVideoPreviewLayer] setBounds:layerRect];
[[self previewLayer] setPosition:CGPointMake(CGRectGetMidX(layerRect),CGRectGetMidY(layerRect))];
// add the video previewview layer to the preview view
[[previewView layer] addSublayer:[self avCaptureVideoPreviewLayer]];
// zoom the preview view using core graphics
[previewView setTransform:CGAffineTransformMakeScale(2.0,2.0 )];
设置preview zoom的方式:
- (void)handlePinchGesture:(UIPinchGestureRecognizer*)gestureRecognizer {
if([gestureRecognizer state]== UIGestureRecognizerStateBegan){
// Reset the last scale, necessary if there are multiple objects with different scales
lastScale = [gestureRecognizer scale];
}
if ([gestureRecognizer state]== UIGestureRecognizerStateBegan||
[gestureRecognizer state]== UIGestureRecognizerStateChanged){
CGFloat currentScale = [[[gestureRecognizer view].layer valueForKeyPath:@"transform.scale"] floatValue];
// Constants to adjust the max/min values of zoom
const CGFloat kMaxScale= 2.0;
const CGFloat kMinScale= 1.0;
CGFloat newScale = 1- (lastScale- [gestureRecognizer scale]);
newScale = MIN(newScale, kMaxScale/ currentScale);
newScale = MAX(newScale, kMinScale/ currentScale);
CGAffineTransform transform= CGAffineTransformScale([[gestureRecognizer view] transform], newScale, newScale);
[gestureRecognizer view].transform= transform;
lastScale = [gestureRecognizer scale]; // Store the previous scale factor for the next pinch gesture call
}
}
图片后处理:
if(cameraZoom >1.0)
{
// save the images original size
CGSize orgSize =[image size];
// resize the image to the zoom scale
image = [image resizedImage:CGSizeMake(image.size.width* cameraZoom, image.size.height*cameraZoom) interpolationQuality:kCGInterpolationNone];
// now calculate the offset x and offset y
CGFloat offsetX = ( image.size.width/ 2) -(orgSize.width/2);
CGFloat offsetY = ( image.size.height/ 2) -(orgSize.height/2);
// crop the image from the offset position to the original width and height
image = [image croppedImage:CGRectMake(offsetX, offsetY, orgSize.width, orgSize.height)];
}
UIButton *imgBtn= (UIButton*)[self.view viewWithTag:500];
[imgBtn setImage:image forState:UIControlStateNormal];
}
- ios学习--camera zoom with slider
- Camera Digital zoom
- ios学习--camera capture
- 关于google maps camera zoom
- zoom的学习
- iOS---------自定义slider
- iOS 控件 slider
- A Slider with 2 Buttons
- vc++ slider 控件学习
- Zoom An Image With Different Interpolation Types
- ImageBox Control with Zoom/Pan Capability
- Zoom
- zoom
- Zoom In and Out camera[ binocular effect ] in Unity
- ios camera
- IOS 控件 自定义UISlider Slider
- ios中slider高度修改
- Navigation Through Records With TrackBar(Slider)
- POJ Blue Jeans(string)
- iPhone开发之UITableView详解(2)
- 在Ubuntu上为Android系统的Application Frameworks层增加硬件访问服务
- button实现activity返回按钮
- 练八段锦30天
- ios学习--camera zoom with slider
- php-Arrays 函数-array_fill-用给定的值填充数组
- hadoop archive
- 为Android系统内置Java应用程序测试Application Frameworks层的硬件服务
- Java程序员从笨鸟到菜鸟之(四十九)细谈struts2(十一)OGNL表达式的基本语法和用法
- sql server 2000 sa 的密码修改
- 设置全屏显示以及横屏等属性
- 把文本内容写入文件
- 同步和异步的区别