Je sauvegarde les images quand il y a une connexion Internet dans mon iPhone. Maintenant, je veux charger les images qui sont sauvegardées dans le répertoire des documents. Je reçois le chemin, mais l'image ne s'affiche pas. S'il vous plait aidez moi avec ceci. Merci d'avance.Comment charger l'image à partir du répertoire de documents/IPHONE
Voici mon code:
+(UIImage *) getImagewithName:(NSString*) imagepath
{
NSString *docDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
UIImage *gimage=[UIImage imageWithContentsOfFile: [NSString stringWithFormat:@"%@/%@",docDir,imagepath]];
NSLog(@"%@/%@",docDir,imagepath);
return gimage;
}
+(void)DownloadImage:(NSString*)ImagePath {
if ([ImagePath isEqualToString:@""])
return;
UIImage *dimage = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:[NSString stringWithFormat:@"http:/uploads/%@",ImagePath]]]];
NSString *docDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSLog(@"pathIMAGEPATHS:::::::%@",ImagePath);
NSLog(@"path:::::::%@",docDir);
NSArray *patharr=[ImagePath componentsSeparatedByString:@"."];
NSString* Ext=[NSString stringWithFormat: @"%@",[patharr objectAtIndex:1]];
NSString *FilePath = [NSString stringWithFormat: [NSString stringWithFormat:@"%@/%@",docDir,ImagePath]];
if([Ext isEqualToString:@"png"])
{
NSLog(@"saving png");
NSData *data1 = [NSData dataWithData:UIImagePNGRepresentation(dimage)];
[data1 writeToFile:FilePath atomically:YES];
}
else if([Ext isEqualToString:@"jpeg"])
{
NSLog(@"saving jpeg");
//NSString *jpegFilePath = [NSString stringWithFormat:@"%@/test.jpeg",docDir];
NSData *data2 = [NSData dataWithData:UIImageJPEGRepresentation(dimage, 1.0f)];//1.0f = 100% quality
[data2 writeToFile:FilePath atomically:YES];
}
else
{
NSData *data1 = [NSData dataWithData:UIImagePNGRepresentation(dimage)];
[data1 writeToFile:FilePath atomically:YES];
}
NSLog(@"saving image done");
[dimage release];
}
avez-vous vérifié (facile à faire avec le simulateur) si l'image a été sauvée physiquement et peut être ouverte avec Aperçu? Ce que je peux voir, c'est que vous ne vérifiez jamais si le dimage, une fois téléchargé sur le réseau, est nul ou non. S'il est nul, votre code continuera à fonctionner mais finalement, il enregistrera un fichier vide. Vous devriez ajouter une vérification nil sur dimage et sortir avec un NSLog (@ "image non téléchargée") et un retour anticipé. – viggio24
Un autre bon moyen de déboguer des interactions avec le répertoire Documents est d'activer le partage de fichiers dans votre 'Info.plist'. Ensuite, vous pouvez ouvrir iTunes pour parcourir les fichiers et les transférer sur votre ordinateur. – Jim