una insertar imagen como agregar ios uiimage imagenamed

ios - insertar - xamarin forms image gallery



La imagen JPG no se carga con UIImage imageNamed (2)

La última referencia del desarrollador indica la información faltante:

Consideraciones especiales En iOS 4 y versiones posteriores, si el archivo está en formato PNG, no es necesario especificar la extensión de nombre de archivo .PNG. Antes de iOS 4, debe especificar la extensión del nombre de archivo.

Una posible razón por la que la biblioteca le da un tratamiento especial a los PNG es que el hardware de iOS está optimizado para los PNG. Las imágenes PNG almacenadas en el paquete de aplicaciones se optimizan mediante Xcode, cambiando el orden de bytes de las imágenes PNG para que coincidan con el chip de gráficos del dispositivo iPhone. (vea esta pregunta: ¿Se prefiere PNG sobre JPEG para todos los archivos de imagen en iOS? ).

Si sabe que solo tendrá un PNG o un JPG, una solución alternativa es crear una categoría en UIImage como se muestra a continuación.

- (UIImage*) jgcLoadPNGorJPGImageWithName:(NSString*)name { UIImage * value; if (nil != name) { value = [UIImage imageNamed:name]; if (nil == value) { NSString * jpgName = [NSString stringWithFormat:@"%@.jpg", name]; value = [UIImage imageNamed:jpgName]; } } return value; }

Leí en la referencia que de iOS versión 4. + con el método imageNamed del objeto UIImage , no se requiere la extensión de archivo.

Desde la referencia de clase UIImage :

Consideraciones Especiales.

En iOS 4 y versiones posteriores, no se requiere el nombre del archivo para especificar la extensión del nombre de archivo. Antes de iOS 4, debe especificar la extensión del nombre de archivo.

Pero parece que esto solo funciona con archivos PNG.

Si mi código es:

[UIImage imageNamed:@"test"];

  • La imagen se carga solo si el archivo es test.png
  • La imagen no se carga si es test.jpg .

Para mí es un gran problema porque necesito mantener una carga de imagen dinámica (no sé en tiempo de ejecución si la imagen que quiero cargar es png o jpg ).

¿Por favor, me puedes ayudar?
Gracias.


Si tiene estas imágenes incluidas en su aplicación, DEBE conocer sus extensiones.

Si los obtiene de una fuente en línea y los tiene como NSData, puede usar este código aquí para determinar el tipo.

+ (NSString *)contentTypeForImageData:(NSData *)data { uint8_t c; [data getBytes:&c length:1]; switch (c) { case 0xFF: return @"image/jpeg"; case 0x89: return @"image/png"; case 0x47: return @"image/gif"; case 0x49: case 0x4D: return @"image/tiff"; } return nil; }

Según la respuesta superior en this pregunta.