7

En la aplicación que estoy desarrollando, estoy usando una imagen que el usuario elige de sus álbumes de fotos. Necesito subir una versión de alta resolución de esa foto a mi servidor.UIImagePickerControllerOriginalImage frente a los datos del activo original

estoy usando imagePickerController y he determinado que tengo 2 opciones

  • uso UIImage de UIImagePickerControllerOriginalImage
  • conseguir activo original mediante el uso de UIImagePickerControllerReferenceURL y ALAssetsLibrary assetForURL (no me gusta esto porque se le pide al usuario utilizar su ubicación actual, que no necesito)

Mi pregunta es ... ¿Hay alguna diferencia en la calidad de la imagen si utilizo la primera opción frente a la segunda?

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{ 

    //option 1 
      UIImage *image = [info objectForKey:@"UIImagePickerControllerOriginalImage"]; 
      NSData *imgData = UIImagePNGRepresentation(image); 

    // option 2 (will prompt user to allow use of current location) 
      NSURL *imgURL = [info objectForKey:@"UIImagePickerControllerReferenceURL"]; 
      __block NSData* imgData; 

      ALAssetsLibrary *assetLibrary=[[ALAssetsLibrary alloc] init]; 

      [assetLibrary assetForURL:img resultBlock:^(ALAsset *asset) 
      { 
       ALAssetRepresentation *rep = [asset defaultRepresentation]; 
       Byte *buffer = (Byte*)malloc(rep.size); 
       NSUInteger buffered = [rep getBytes:buffer fromOffset:0.0 length:rep.size error:nil]; 
       imgData = [NSData dataWithBytesNoCopy:buffer length:buffered freeWhenDone:YES]; 
      } 
         failureBlock:^(NSError *err) { 
          NSLog(@"Error: %@",[err localizedDescription]); 
         }]; 
     } 
+0

estoy usando la opción 2 sin permiso ubicación y es capaz de conseguir que una imagen. (Todavía no puedo usar ALAssetsLibrary para acceder a toda la biblioteca). Esto funciona en iOS 5 e iOS 6. –

Respuesta

13

me hizo una prueba comparando las imágenes utilizando ambas opciones. Con la opción 1, la imagen fue dos veces más grande (4,22 MB frente a 2,04 MB). Al mirar las fotos en Photoshop, no parecía haber ninguna diferencia importante en la calidad. Al mirar los niveles, el creado por la opción 1 no fue tan uniforme (Imagen a continuación). al mirar las propiedades de los archivos, al creado por la opción 1 le faltaban algunas opciones de "origen", "cámara" y "foto avanzada" que tenía el archivo creado por la opción 2. No he decidido de qué manera voy a utilizar, pero espero que esta información ayude a otra persona.

levels in Photoshop

Cuestiones relacionadas