snapseed - ¿Cómo puedo tomar una foto con mi aplicación de iPhone?
mejor aplicacion para editar fotos android (5)
Respuesta publicada por @WQS funciona bien, pero contiene algunos métodos que están en desuso de iOS 6. Aquí está la respuesta actualizada para iOS 6 y superior:
-(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.
}
No olvide agregar esto en su view controller.h
:
@interface myVC<UINavigationControllerDelegate, UIImagePickerControllerDelegate>
Estoy escribiendo una aplicación para iPhone con Cocoa en xcode. No puedo encontrar ningún tutorial o código de muestra que muestre cómo tomar fotos con la cámara incorporada. ¿Cómo hago esto? ¿Dónde puedo encontrar buena información?
¡Gracias!
Simplemente copie y pegue el siguiente código en su proyecto para obtener la funcionalidad completamente implementada.
donde tomarPhoto y elegirFromBiblioteca son mis propios nombres de método que serán llamados al presionar el botón.
Asegúrese de hacer referencia a las salidas de los botones apropiados a estos 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.
}
Aquí está mi código que solía tomar una foto para mi aplicación
- (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];
}
si desea volver a tomar la imagen simplemente agregue esta función
-(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
[self dismissViewControllerAnimated:YES completion:NULL];
}
La clase UIImagePickerController
permite tomar fotos o elegirlas de la biblioteca de fotos. Especifique el tipo de fuente como UIImagePickerControllerSourceTypeCamera
.
Vea también esta pregunta previamente hecha: acceda a la cámara con el SDK de iPhone
Use UIImagePickerController
. Hay un buen tutorial sobre esto aquí.
http://www.zimbio.com/iPhone/articles/1109/Picking+Images+iPhone+SDK+UIImagePickerController
Debe establecer el tipo de fuente en UIImagePickerControllerSourceTypeCamera
o UIImagePickerControllerSourceTypePhotoLibrary
. Tenga en cuenta que estos dos tipos resultan en pantallas muy diferentes en la pantalla. Debe probar ambos cuidadosamente. En particular, si anida el UIImagePickerController
dentro de un UINavigationController
, puede terminar con barras de navegación múltiples y otros efectos extraños si no tiene cuidado.
Ver también este hilo