Como posso tirar uma foto com o meu iPhone app?

votos
18

Eu estou escrevendo um aplicativo para iPhone com cacau no Xcode. Não consigo encontrar qualquer código tutoriais ou exemplo que mostra como tirar fotos com a câmera embutida. Como eu faço isso? Onde posso encontrar boas informações?

Obrigado!

Publicado 23/09/2008 em 21:05
fonte usuário
Em outras línguas...                            


5 respostas

votos
24

Basta copiar e colar seguinte código em seu projeto para obter uma funcionalidade totalmente implementado.

onde takePhoto e chooseFromLibrary são meu próprio método nomes que serão chamados no botão de toque.

Certifique-se de fazer referência a pontos de venda de botões apropriados para estes métodos.

   -(IBAction)takePhoto :(id)sender

{
        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:(id)sender
{

    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 UIImageView.
}
Respondeu 12/09/2012 em 06:41
fonte usuário

votos
11

Use UIImagePickerController. Há um bom tutorial sobre isso aqui.

http://www.zimbio.com/iPhone/articles/1109/Picking+Images+iPhone+SDK+UIImagePickerController

Você deve definir o tipo de fonte para UIImagePickerControllerSourceTypeCameraou UIImagePickerControllerSourceTypePhotoLibrary. Note-se que estes dois tipos resultar em muito diferentes é exibido na tela. Você deve testar tanto cuidado. Em particular, se você está aninhando o UIImagePickerControllerdentro de um UINavigationController, você pode acabar com várias barras de navegação e outros efeitos estranhos se você não for cuidadoso.

Veja também esta discussão

Respondeu 24/09/2008 em 14:35
fonte usuário

votos
4

A UIImagePickerControllerclasse permite tirar fotos ou escolhê-los a partir da biblioteca de fotos. Especificar o tipo de fonte como UIImagePickerControllerSourceTypeCamera.

Veja também esta pergunta anteriormente perguntou: Acesse a câmera com o iPhone SDK

Respondeu 23/09/2008 em 21:17
fonte usuário

votos
1

Resposta postado por @WQS funciona bem, mas contém alguns métodos que são preteridos a partir de iOS 6. Aqui está a resposta atualizado para o iOS 6 e acima:

-(void)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 presentViewController:imagePickerController animated:YES completion:nil];
}



-(void)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 presentViewController:imagePickerController animated:YES completion:nil];

}

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

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

Não se esqueça de adicionar isso no seu view controller.h:

@interface myVC<UINavigationControllerDelegate, UIImagePickerControllerDelegate>
Respondeu 25/02/2014 em 13:15
fonte usuário

votos
0

Aqui está o meu código que eu usei para tirar uma foto para meu aplicativo

- (IBAction)takephoto:(id)sender {

    picker = [[UIImagePickerController alloc] init];
    picker.delegate = self;
    [picker setSourceType:UIImagePickerControllerSourceTypeCamera];
    [self presentViewController:picker animated:YES completion:NULL];


}
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    img = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
    [imageview setImage:img];
    [self dismissViewControllerAnimated:YES completion:NULL];
}

se você quiser retomar imagem apenas simples adicionar esta função

-(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
    [self dismissViewControllerAnimated:YES completion:NULL];
}
Respondeu 07/10/2014 em 21:03
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more