【问题标题】:Programmatically take X amount of pictures以编程方式拍摄 X 数量的照片
【发布时间】:2013-04-22 23:03:06
【问题描述】:

在为 iPhone 和 iPad 输入 UIViewController 后,我正在尝试实现以编程方式拍摄 X 数量照片的功能。我查看了UIImagePickerController,但我不想展示相机控件并让用户点击按钮以仅拍摄一张照片。有没有一种方法可以在输入UIViewController 后捕获 X 数量的照片并将所有照片存储在最后以供将来参考?

编辑

-(void)viewDidAppear:(BOOL)animated
{
    // Create image picker controller
    picker = [[UIImagePickerController alloc] init];

    if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
    {
        [picker setSourceType:UIImagePickerControllerSourceTypeCamera];
    }
    else
    {
        [picker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
    }

    // Set source to the camera
    picker.sourceType =  UIImagePickerControllerSourceTypeCamera;

    // Delegate is self
    picker.delegate = self;

    // Allow editing of image ?
    picker.allowsEditing = NO;

    //picker.showsCameraControls = NO;

    // Show image picker
    [picker animated:YES completion:nil];
}

【问题讨论】:

  • 您能否编辑您的问题以显示来自视图控制器的一些代码,以显示您如何以编程方式拍照?
  • 我在问是否有其他方式以编程方式拍照。我已经用我当前使用 UIImagePickerController 但没有完成我想要的代码的代码编辑了这个问题。
  • 你应该看看 AVCaptureSession 可能对你有帮助
  • 有推荐的教程吗?

标签: ios objective-c uiimagepickercontroller


【解决方案1】:

直接使用 takePicture 您不能拍摄多个快照,因为您必须使用一些视频录制并在特定帧或时间从其中获取快照,为您提供更多参考,您可以使用此苹果文档进行批量快照 @987654321 @

【讨论】:

    【解决方案2】:

    你可以试试这样的:

    int numberOfPhotos = 3; // Number of photos you want to take.
    for ( int i = 0; i < numberOhPhotos; i++ )
    {
        // Note that you should use some sort of a pause in between each photo.
        [picker takePicture];
    }
    

    【讨论】:

    • 有没有在调用takePicture之后发生的方法?我想处理拍摄的照片并存储它们。另外,在每张照片之间暂停的最佳方式是什么?
    • 是的,UIImagePickers 代表 imagePickerController:didFinishPickingMediaWithInfo: 在每次 takePicker 调用之后被调用。至于暂停,可以设置performSelector:withObject:afterDelay。我也会研究dispatch_after 队列,但它们在 for 循环中表现不佳。
    • 我在同一个文件中,-(void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { NSLog(@"test");文本“test”根本不会显示给控制台。没有调用它有什么原因吗?
    • 看来我需要提供选择器。有没有办法在不出示 PickerController 的情况下拍照?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-11
    • 2012-03-30
    相关资源
    最近更新 更多