Iphone 使用定时器以编程方式拍照

Iphone 使用定时器以编程方式拍照,iphone,objective-c,timer,photo,Iphone,Objective C,Timer,Photo,我正在寻找一种方法,使在Objective-C从代码和图像显示器使用定时器的照片 我的意思是:我想要一个类似于标准照片应用程序的界面,但按下按钮后不能拍摄照片,但按钮必须从计时器启动计时器,我将检查其他值 让我们举个例子: 我按下按钮 计时器启动了 检查值1-2秒后,拍摄照片 照片会自动保存在照片库中 应用程序已准备好制作其他照片 但我不知道如何开始。我看到了一些称为Photo应用程序的代码示例,但没有任何代码可以实现这一点,尽管我看到许多应用程序都可以做到这一点。拍照时,只需保存即可 如何执行

我正在寻找一种方法,使在Objective-C从代码和图像显示器使用定时器的照片

我的意思是:我想要一个类似于标准照片应用程序的界面,但按下按钮后不能拍摄照片,但按钮必须从计时器启动计时器,我将检查其他值

让我们举个例子:

我按下按钮

计时器启动了

检查值1-2秒后,拍摄照片

照片会自动保存在照片库中

应用程序已准备好制作其他照片

但我不知道如何开始。我看到了一些称为Photo应用程序的代码示例,但没有任何代码可以实现这一点,尽管我看到许多应用程序都可以做到这一点。拍照时,只需保存即可

如何执行此操作?

用于显示默认的摄像头GUI

UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
picker.showsCameraControls = NO;
您可以通过将ShowScameraControl设置为NO来隐藏默认的摄影机控件。然后,您可以通过创建UIView、添加控件并将cameraOverlayView设置为该视图来定义自己的控件

UIView *cameraControlsView = [[UIView alloc] initWithFrame:controlsFrame];
UIButton *captureButton = [[UIButton alloc] initWithFrame:buttonFrame];
[captureButton setTitle:@"Capture" forState:UIControlStateNormal];
[captureButton addTarget:self action:@selector(buttonPressed:)        
        forControlEvents:UIControlEventTouchUpInside];
[cameraControlsView addSubview:captureButton];
picker.cameraOverlayView = cameraControlsView;
当用户点击自定义捕获按钮时,您可以启动计时器。当计时器启动时,您执行验证并使用takePicture方法捕获图像

- (void)buttonPressed:(id)sender {
    [NSTimer scheduledTimerWithTimeInterval:3.0f target:self 
     selector:@selector(timerFired:) userInfo:nil repeats:NO];
}

- (void)timerFired:(NSTimer *)timer {
    if (whateverIsOk) {
        [self.picker takePicture];
    )
}
用于显示默认的照相机GUI

UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
picker.showsCameraControls = NO;
您可以通过将ShowScameraControl设置为NO来隐藏默认的摄影机控件。然后,您可以通过创建UIView、添加控件并将cameraOverlayView设置为该视图来定义自己的控件

UIView *cameraControlsView = [[UIView alloc] initWithFrame:controlsFrame];
UIButton *captureButton = [[UIButton alloc] initWithFrame:buttonFrame];
[captureButton setTitle:@"Capture" forState:UIControlStateNormal];
[captureButton addTarget:self action:@selector(buttonPressed:)        
        forControlEvents:UIControlEventTouchUpInside];
[cameraControlsView addSubview:captureButton];
picker.cameraOverlayView = cameraControlsView;
当用户点击自定义捕获按钮时,您可以启动计时器。当计时器启动时,您执行验证并使用takePicture方法捕获图像

- (void)buttonPressed:(id)sender {
    [NSTimer scheduledTimerWithTimeInterval:3.0f target:self 
     selector:@selector(timerFired:) userInfo:nil repeats:NO];
}

- (void)timerFired:(NSTimer *)timer {
    if (whateverIsOk) {
        [self.picker takePicture];
    )
}

UIImagePickerController类中有一种方法可以通过编程方式拍照

-(void)takePicure
要将图像保存到照片库,有两个选项

使用ALAssetLibrary

AlassetLibrary*al=[[AlassetLibrary alloc]init]; [al writeImageDataToSavedPhotosAlbum:user.photo.image元数据:nil completionBlock:^NSURL*assetURL,NSError*error{}]

无效UIImageWriteToSavedPhotosAlbumUIImage*图像, id completionTarget,SEL completionSelector,void*contextInfo


UIImagePickerController类中有一种方法可以通过编程方式拍照

-(void)takePicure
要将图像保存到照片库,有两个选项

使用ALAssetLibrary

AlassetLibrary*al=[[AlassetLibrary alloc]init]; [al writeImageDataToSavedPhotosAlbum:user.photo.image元数据:nil completionBlock:^NSURL*assetURL,NSError*error{}]

无效UIImageWriteToSavedPhotosAlbumUIImage*图像, id completionTarget,SEL completionSelector,void*contextInfo



因此,基本上你想实现一个带有倒计时功能的照片应用程序?我想检查这些值以进行验证,如果结果为真,照片就会被拍摄,如果不是,计时器就会重新启动,显然它会包括一个取消按钮。无论如何,我不认为这个内部代码对你的帮助很重要。我正在阅读一本手册,并在2-3周内做了一些尝试,但我不擅长这些事件和框架。因此,基本上你想实现一个带有倒计时功能的照片应用程序?我想检查这些值以进行验证,如果结果是真的,照片被拍下来,如果没有,计时器就会重新启动,显然它会包括一个取消按钮。无论如何,我不认为这个内部代码对你的帮助很重要。我正在阅读一本手册,并在2-3周内做了一些尝试,但我不擅长这些事件和框架。我认为takePicture已经保存到照片库了,不是吗?我不这么认为。我会检查的我想takePicture已经保存到照片库了,不是吗?我不这么认为。我会查克曼,谢谢你的帮助,但我在应用它时遇到了一些困难,有一个警告,计时器从未使用过,当我按下按钮时,什么也没有发生。什么警告?您成功地创建了GUI和按钮吗?这不是复制粘贴解决方案,我只是在这里输入了它,没有检查可能的错误。我创建了GUI和按钮,但当我按下它时,什么都没有发生,警告是未使用的变量计时器,在您的事件上-voidtimerFired:NSTimer*timerMy Error,您不需要将它保存到变量中。你确定计时器什么也不做吗?timerFired:已执行吗?我尝试只执行[self.picker takePicture];为了证明这一点,但没有线索,这是行不通的。.m文件的代码.h文件的代码人,谢谢你的帮助,但我在应用它时遇到了一些困难,有一个警告,计时器从未使用过,当我按下按钮时,什么也没有发生。什么警告?您成功地创建了GUI和按钮吗?这不是复制粘贴解决方案,我只是在这里输入了它,没有检查可能的错误。我创建了GUI和按钮,但当我按下它时,什么都没有发生,警告是未使用的变量计时器,
在event-voidtimerFired:NSTimer*timerMy Error上,您不需要将其保存到变量中。你确定计时器什么也不做吗?timerFired:已执行吗?我尝试只执行[self.picker takePicture];为了证明这一点,但没有线索,这是行不通的。.m文件的代码.h文件的代码