在中心缩放实时 iPhone 相机视图,“CGAffineTransformTranslate”不起作用

Posted

技术标签:

【中文标题】在中心缩放实时 iPhone 相机视图,“CGAffineTransformTranslate”不起作用【英文标题】:Scaled live iPhone Camera view in center, "CGAffineTransformTranslate" not working 【发布时间】:2011-01-03 18:42:48 【问题描述】:

我有一个我无法解决的小问题。我真的希望有人可以帮助我。我想调整实时摄像机视图的大小并将其放置在中心,使用以下代码:

    picker.cameraViewTransform = CGAffineTransformScale(picker.cameraViewTransform, 0.5, 0.56206);
    picker.cameraViewTransform = CGAffineTransformTranslate(picker.cameraViewTransform, 80, 120);

但我得到的只是屏幕左上角 1/2 大小的视图。似乎“CGAffineTransformTranslate”什么也没做。即使我使用了翻译也不起作用:

     picker.cameraViewTransform = CGAffineTransformMake(1, 0, 0, 1, 80, 120);

翻译部分似乎对实时摄像机视图没有影响。 希望有人能不吝赐教。

谢谢。

【问题讨论】:

我看到了同样的行为。 我也是。不知道解决办法。 这似乎已在较新的 ios 中得到修复。我不确定他们什么时候修补的。 【参考方案1】:

我一直在努力解决同样的问题。我已经确认缩放和旋转预览有效,但翻译似乎被忽略了。我推测在设置转换时会忽略 CGAffineTransform 的 tx、ty 部分。这适用于 iPhone OS v3.1.2。我目前没有其他操作系统版本可供测试。

【讨论】:

【参考方案2】:

我得到了解决方案。 必须在消息上设置:

- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated

示例代码:

#pragma mark -
#pragma mark UINavigationControllerDelegate
- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated
   
    CGFloat width = [[self view] bounds].size.width;
    CGFloat height = width/4*3;
    CGSize sizeOfCamera = CGSizeMake(width, height);
    CGAffineTransform t = CGAffineTransformMakeScale(0.5, 0.5);
    [picker setCameraViewTransform:t];

    // Now the image is automatically aligned to center.
    // Translation matrix also can be applied, but didn't use because it's already aligned to center.

【讨论】:

您当然可以尝试添加翻译,但它会被忽略,就像在原始问题中一样。【参考方案3】:

我在同一条船上。我所做的是物理移动选择器框架。

[picker.view setFrame:CGRectMake(xOffset,yOffset,picker.view.frame.size.width,picker.view.frame.size.height)];

【讨论】:

以上是关于在中心缩放实时 iPhone 相机视图,“CGAffineTransformTranslate”不起作用的主要内容,如果未能解决你的问题,请参考以下文章

iOS:使用缩放模拟 iPhone 相机胶卷

3D MAX常用快捷键

将本机 iphone 相机缩放滑块和 youtube 播放器控制器添加到我的应用程序

Android 谷歌地图 API v2 中心缩放

来自 AVCaptureVideoPreviewLayer 的实时缩放

UIScrollView中的iPhone UIImageView没有缩放到中心