我正在寻找一种方法,使用计时器从Objective-C和使用计时器的图像显示器制作照片。
我的意思是:我想要一个类似于标准照片应用程序的界面,但按下按钮后不能拍照片,但按钮必须启动一个计时器(从计时器我将检查其他值)。 / p>
我们举个例子:
我按下按钮
计时器启动
在检查值1-2秒后,照片将被拍摄
照片会自动保存在照片库中。
该应用程序已准备好制作其他照片
但我不知道如何开始。我看到了调用Photo Application的代码示例,但是没有任何代码可以通过代码实现,尽管我看到许多应用程序都这样做。拍摄照片后,应该只保存。
我该怎么做?
答案 0 :(得分:0)
使用UIImagePickerController
显示默认的相机GUI。
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
picker.showsCameraControls = NO;
您可以将showsCameraControls
设置为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;
当用户点击自定义捕获UIButton
时,您可以启动计时器。当计时器触发时,您进行验证并使用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];
)
}
答案 1 :(得分:0)
UIImagePickerController类中有一个方法以编程方式拍摄照片
-(void)takePicure
要将图像保存到照片库,您有两个选项
使用ALAssetLibrary
ALAssetsLibrary *al = [[ALAssetsLibrary alloc] init];
[al writeImageDataToSavedPhotosAlbum:user.photo.image metadata:nil completionBlock:^(NSURL *assetURL, NSError *error) { }];
void UIImageWriteToSavedPhotosAlbum(UIImage *image,
id completionTarget, SEL completionSelector, void *contextInfo);