cómo saber esta image es jpg o png iphone

Me gustaría elegir una image de UIImagepicker, hay un formatting PNG y JPG en rollo de camera.

y necesito convertirlo en NSData. Sin embargo, necesito saber si estas imágenes son UIImageJPEGRepresentation o UIImagePNGRepresentation así que podría convertirlo.

 UIImage *orginalImage = [info objectForKey:UIImagePickerControllerOriginalImage]; [picker dismissViewControllerAnimated:YES completion:nil]; NSData *orgData = UIImagePNGRepresentation(orginalImage); 

No debe saber ni preocuparse de qué es la representación interna de las imágenes en el rollo de la camera. Los methods que mencionó UIImageJPEGRepresentation y UIImagePNGRepresentation devuelven representaciones de la image del rollo de camera. Depende de usted elegir qué representación desea usar.

Para resumir:

 NSData * pngData = UIImagePNGRepresentation(originalImage); 

Le devolverá la representación de la image en un object NSData , con el formatting PNG.

Cuando el método de delegado imagePickerController: didFinishPickingMediaWithInfo: para UIImagePickerController se llama, se obtiene la URL de activo para la foto particular seleccionada.

 [info valueForKey:UIImagePickerControllerReferenceURL] 

Ahora, esta URL se puede usar para acceder al activo en ALAssetsLibrary. Entonces necesitará una representación de ALAsset de ese activo accedido. Desde esta ALAssetRepresentation podemos get la UTI para esa image ( http://developer.apple.com/library/ios/#DOCUMENTATION/FileManagement/Conceptual/understanding_utis/understand_utis_conc/understand_utis_conc.html )

Tal vez el código lo haría un poco más claro:

 - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { if (!(picker.sourceType == UIImagePickerControllerSourceTypeCamera)) { NSLog(@"User picked image from photo library"); ALAssetsLibrary *library = [[[ALAssetsLibrary alloc] init] autorelease]; [library assetForURL:[info valueForKey:UIImagePickerControllerReferenceURL] resultBlock:^(ALAsset *asset) { ALAssetRepresentation *repr = [asset defaultRepresentation]; if ([[repr UTI] isEqualToString:@"public.png"]) { NSLog(@"This image is a PNG image in Photo Library"); } else if ([[repr UTI] isEqualToString:@"public.jpeg"]) { NSLog(@"This image is a JPEG image in Photo Library"); } } failureBlock:^(NSError *error) { NSLog(@"Error getting asset! %@", error); }]; } } 

Como explica la UTI, esta debería ser una respuesta segura a cómo se almacena la image en la fototeca.

en Swift 2.2

 func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) { if (!(picker.sourceType == UIImagePickerControllerSourceType.Camera)) { let assetPath = info[UIImagePickerControllerReferenceURL] as! NSURL if assetPath.absoluteString.hasSuffix("JPG") { } else { }