【问题标题】:iPhone custom camera overlay (plus image processing) : how-to [duplicate]iPhone自定义相机覆盖(加上图像处理):操作方法[重复]
【发布时间】:2011-12-25 18:56:56
【问题描述】:

可能重复:
How do you create a custom camera view, instead of UIImagePickerViewController?

如今 App Store 中的许多图像共享应用程序都使用自定义相机,而不是 Apple 提供的标准相机选择器。

有人知道创建自定义相机的任何教程或技巧吗?

【问题讨论】:

    标签: iphone objective-c cocoa-touch ios5 uiimagepickercontroller


    【解决方案1】:

    是的,从代码创建一个 UIImagePickerController,调整它的属性,在上面添加一个叠加层,然后用你的控制器,控制你想要在那个叠加层上的任何东西:自定义控件,叠加图像等等......

    这给出了这样的东西:

    self.picker = [[UIImagePickerController alloc] init];
    self.picker.sourceType = UIImagePickerControllerSourceTypeCamera;
    self.picker.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto;
    self.picker.cameraDevice = UIImagePickerControllerCameraDeviceRear;
    self.picker.showsCameraControls = NO;
    self.picker.navigationBarHidden = YES;
    self.picker.toolbarHidden = YES;
    self.picker.wantsFullScreenLayout = YES;
    
    // Insert the overlay
    self.overlay = [[OverlayViewController alloc] initWithNibName:@"Overlay" bundle:nil];
    self.overlay.pickerReference = self.picker;
    self.picker.cameraOverlayView = self.overlay.view;
    self.picker.delegate = self.overlay;
    
    [self presentModalViewController:self.picker animated:NO];
    

    OverlayViewController 是您必须编写的控制器,以控制您添加到叠加层上的所有内容。

    pickerReference 是您可以保留的属性,用于向相机发送订单。例如,您可以从来自放置在叠加层上的 UIButton 的 IBAction 调用以下内容:

    [self.pickerReference takePicture];
    

    【讨论】:

    • 感谢您的回答。我已经理解但只有一个问题:我怎样才能制作一个拍摄按钮,当按下它时它会停止从相机捕获图像? (简而言之,我怎样才能实现“拍照”按钮。谢谢。
    • @FredCollins:在叠加层上放置一个按钮,将其与 IBAction 链接并进入 IBAction 调用 [self.pickerReference takePicture]; (查看Apple doc中的方法名称,我认为是这个)
    • @FredCollins :应用效果从 delgate 方法开始 - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 以获取拍摄的图像。之后,您可以应用无限数量的效果,所以……您可以做自己想做的事。
    • @FredCollins :这真的取决于。 OpenGL 用于 3D 效果和/或一些复杂的效果。但是对于基本的东西,CoreGraphics 就足够了。在这里我们进入图像处理,一旦你确切知道你想要什么样的效果,你应该打开另一个问题。还可以考虑查看其他 StackExchange 站点。一些关于图像处理的讨论。
    • @FredCollins:不客气
    【解决方案2】:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-04
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多