gpt4 book ai didi

ios - 使用 Objective-C 放大和缩小相机 View ?

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:38:52 24 4
gpt4 key购买 nike

如何使用 UIPinchGestureRecognizer 和 AVCaptureDevice 在相机 View 上应用放大和缩小。缩放不正确。
缩小在我的以下代码中不起作用:

 AVCaptureDevice *device =[AVCaptureDevice defaultDeviceWithMediaType:
AVMediaTypeVideo];
AVCaptureDeviceFormat *format = device.activeFormat;
CGFloat maxZoomFactor = format.videoMaxZoomFactor;
const CGFloat pinchVelocityDividerFactor = 2.0f;

if (pinchRecognizer.state == UIGestureRecognizerStateChanged || pinchRecognizer.state ==UIGestureRecognizerStateBegan)
{
NSError *error = nil;
if ([device lockForConfiguration:&error])
{
CGFloat desiredZoomFactor = device.videoZoomFactor +
atan2f(pinchRecognizer.velocity, pinchVelocityDividerFactor);

// Check if desiredZoomFactor fits required range from 1.0
//to activeFormat.videoMaxZoomFactor
if((1.0 <= pinchRecognizer.scale) && (2.5 >= pinchRecognizer.scale))
device.videoZoomFactor = pinchRecognizer.scale * pinchRecognizer.scale;

[device unlockForConfiguration];
}
else
{
NSLog(@"error: %@", error);
}
}
}

请帮助任何人。
谢谢

最佳答案

//PinchGesture Recognizer 方法定义

- (void)handlePinchZoom:(UIPinchGestureRecognizer *)pinchRecognizer
{
AVCaptureDevice *device =[AVCaptureDevicedefaultDeviceWithMediaType:
AVMediaTypeVideo];
AVCaptureDeviceFormat *format = device.activeFormat;
CGFloat maxZoomFactor = format.videoMaxZoomFactor;
NSArray *formats = device.formats;
const CGFloat pinchVelocityDividerFactor = 2.0f;
if (pinchRecognizer.state == UIGestureRecognizerStateChanged || pinchRecognizer.state ==UIGestureRecognizerStateBegan)
{
NSError *error = nil;
if ([device lockForConfiguration:&error])
{
CGFloat desiredZoomFactor = device.videoZoomFactor +
atan2f(pinchRecognizer.velocity, pinchVelocityDividerFactor);

device.videoZoomFactor = MAX(1.0, MIN(desiredZoomFactor,
device.activeFormat.videoMaxZoomFactor));
[device unlockForConfiguration];
}
else
{
NSLog(@"error: %@", error);
}
}
}

关于ios - 使用 Objective-C 放大和缩小相机 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35841390/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com