2011-12-26 13 views
17

No puedo obtener mi imagen (.png) para mostrar.Cargando una imagen del directorio de documentos

Compruebo que existe en el camino que uso, y lo hace. Pero no aparece ninguna imagen.

Esto es lo que he estado intentando:

NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDir = [documentPaths objectAtIndex:0]; 

NSString *outputPath = [documentsDir stringByAppendingPathComponent:[fileList objectAtIndex:indexPath.row]]; 

NSFileManager *fileManager = [[[NSFileManager alloc] init] autorelease]; 



NSString *imgPath = [[outputPath stringByReplacingOccurrencesOfString:@"mov" withString:@"png"]retain]; 


if ([fileManager fileExistsAtPath:imgPath]) 
{ 
    NSLog(@"FOUND IMG"); 
    NSLog(imgPath); 
} 


NSData *imgData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:imgPath]]; 
UIImage *thumbNail = [[UIImage alloc] initWithData:imgData]; 
UIImageView * imgView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 120, 120)]; 
[imgView setImage:thumbNail]; 

[cell addSubview:imgView]; 
[imgView release]; 

La salida de depuración que confirma el archivo existe

FOUND IMG 
2011-12-26 12:42:23.066 iGeo2[412:707] /var/mobile/Applications/1A2B0D85-CDB1-4E4B- 
9509-EF68B1A0E720/Documents/0.009000.png 

estoy un poco desconcertado. ¿Alguien ve dónde cometí el error?

Muchas gracias, -Code

he probado algunos otros métodos, pero no aparece nada nunca.

+0

Usted puede obtener su respuesta aquí: http://stackoverflow.com/questions/6663511/iphone-how-to-display-document-directory-images-in- image-view – utsabiem

+0

Para usar 'NSFileManager' use el método convence:' NSFileManager * fileManager = [NSFileManager defaultManager] 'En general, compruebe la documentación de los métodos de convence basados ​​en clases. Si usa ARC, si es posible, realmente hace que desarrollar código sea mucho más simple. – zaph

Respuesta

16

Debe usar [NSURL fileURLWithPath:imgPath] en lugar de [NSURL URLWithString:imgPath]. La ruta de la imagen no es una URL válida, necesita un prefijo file://.

4

necesario para la administración url archivo adecuado que será

NSURL *imgURL = [NSURL fileURLWithPath:imgPath]; 

entonces inicializar su imagen con adecuada imgURL var y, finalmente, para añadir la imagen a su celular que tiene que hacer lo siguiente

[cell.contentView addSubview:imgView]; 

Espero que pueda resolver su problema.

21

intenta utilizar

NSData *imgData = [NSData dataWithContentsOfFile:imgPath]; 
UIImage *thumbNail = [[UIImage alloc] initWithData:imgData]; 

o

NSData *imgData = [[NSData alloc] initWithContentsOfURL:[NSURL fileURLWithPath:imgPath]]; 
UIImage *thumbNail = [[UIImage alloc] initWithData:imgData]; 
+0

¿Cómo puedo visualizar la imagen GIF desde el directorio de documentos? – sohil

0

su URL es perfecta.

Necesitas inicializar imagen con línea siguiente

UIImage *thumbNail=[UIImage imageWithContentsOfFile:imagePath]; 

ahora hacer esto

[imgView setImage:thumbNail]; 

[cell addSubview:imgView]; 
3
imageView.image = [UIImage imageWithContentsOfFile:[[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"Filename"]]; 
0

Swift Código 4

:

extension FileManager { 
    class func getImage(named: String) -> UIImage? { 
     let imagePath = getImagePath(named: named) 
     return UIImage(contentsOfFile: imagePath) 
    } 

    class func getImagePath(named: String) -> String { 
     let fileManager = FileManager.default 
     let documentDir = try! fileManager.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false) 
     return documentDir.appendingPathComponent(named).path 
    } 
} 

Uso:

let image = FileManager.getImage(named: "image.png") 
Cuestiones relacionadas