如何用iPhone拍照

时间:2010-08-31 12:05:46

标签: iphone iphone-sdk-3.0 ios4 avfoundation

有没有办法用iPhone拍照?

(没有代表或控制人员)。

其实我想要的是:

1一个显示相机看到的视图,

2)一个拍照片的按钮。 (比如调用一个函数并将照片恢复原状)

补充:上面的“视图”将是普通屏幕中的区域,也是按钮

这会是AVFoundation。

由于

2 个答案:

答案 0 :(得分:2)

如果您只是尝试使用相机,AVFoundation框架会过度使用它,而且它对声音和电影来说意味着更多。基本的摄像头方法都在UIKit框架中。如果您正在尝试编辑图像,则AVFramework不是您需要的。

此外,如果没有代表或控制器,您将无法拥有应用程序。这就是应用程序的制作方式。没有他们,你什么也做不了。有关详细信息,请参阅Apple View Controller Programming Guide

像falconcreek所说,你需要使用UIImagePickerController并设置UIImagePickerDelegate以在应用程序中使用相机。

问题:您试图对这些相机应用无法使用的图像做什么?

答案 1 :(得分:0)

只需将以下代码复制并粘贴到项目中即可获得完全实现的功能。

其中 takePhoto chooseFromLibrary 是我自己的方法名称,将在按钮触摸时调用。和

因此请确保将适当按钮的插座引用到这些方法中。

希望它会有所帮助:)

   -(IBAction)takePhoto
{
        UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];

        if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
        {
            [imagePickerController setSourceType:UIImagePickerControllerSourceTypeCamera];
        }

        // image picker needs a delegate,
        [imagePickerController setDelegate:self];

    // Place image picker on the screen
    [self presentModalViewController:imagePickerController animated:YES];
}



-(IBAction)chooseFromLibrary
{

    UIImagePickerController *imagePickerController= [[UIImagePickerController alloc]init]; 
    [imagePickerController setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];

    // image picker needs a delegate so we can respond to its messages
    [imagePickerController setDelegate:self];

    // Place image picker on the screen
    [self presentModalViewController:imagePickerController animated:YES];

}

//delegate methode will be called after picking photo either from camera or library
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{   
    [self dismissModalViewControllerAnimated:YES]; 
    UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];

    [myImageView setImage:image];    // "myImageView" name of any UImageView.
}