This question already has answers here:
Closed 6 years ago.
I want to display image saved in the documents folder problem is that it returns file name but it does not show image in the image View
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString*patientlastName;
NSString*test=@"nicej";
patientlastName=[test stringByReplacingOccurrencesOfString:@" " withString:@""];
NSString * filePath = [NSString stringWithFormat:@"%@/Documents//%@.png", NSHomeDirectory(),patientlastName];
BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:filePath];
if (fileExists == 0)
{
NSLog(@"File is Not exists");
appDelegate.imageURL=@"File Not Exists";
}
NSString *userfile=[NSString stringWithFormat:@"%@",patientlastName];
appDelegate.imageURL=userfile;
PictureDisplayViewController *targetController = [[PictureDisplayViewController alloc] initWithNibName:@"PictureDisplayViewController" bundle:nil];
targetController.modalPresentationStyle = UIModalPresentationFullScreen;
[self.splitViewController presentViewController:targetController animated:YES completion:nil];
In PictureDisplayViewController
imageView.image=[UIImage imageNamed:@"nicej.png"];
try this code:
save image in this path:
NSFileManager *fileMan = [NSFileManager defaultManager];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *str= [NSString stringWithFormat:@"%@.png",patientlastName];
NSString *Image_filePath=[documentsDirectory stringByAppendingPathComponent:str];
NSData *imagedata=UIImagePNGRepresentation(yourimage);
[fileMan createFileAtPath:[Image_filePath stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding] contents:imagedata attributes:nil];
get image path:
NSString* fileName = [NSString stringWithFormat:@"%@.png",patientlastName}
NSArray *arrayPaths =
NSSearchPathForDirectoriesInDomains(
NSDocumentDirectory,
NSUserDomainMask,
YES);
NSString *path = [arrayPaths objectAtIndex:0];
NSString* pdfFileName = [path stringByAppendingPathComponent:fileName];
UIImage *image1=[UIImage imageWithContentsOfFile:pdfFileName];
imageView.image=image1;
//suppose imgpath is path of your image in doument directory then use these two lines of code.
NSData *imgData = [NSData dataWithContentsOfFile:imgPath];
imageView.image = [[UIImage alloc] initWithData:imgData];
In PictureDisplayViewController
, you are loading image with imageNamed
method that actually doesn't work until you have image with the same name into your bundle.
you can load image like as follow...
In PictureDisplayViewController
you already have path for the image than
imageView.image= [UIImage imageWithContentsOfFile:filePathWithName];
I modify your code :
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString*patientlastName;
NSString*test=@"nicej";
patientlastName=[test stringByReplacingOccurrencesOfString:@" " withString:@""];
NSString * filePath = [NSString stringWithFormat:@"%@/Documents//%@.png", NSHomeDirectory(),patientlastName];
BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:filePath];
if (fileExists == 0)
{
NSLog(@"File is Not exists");
appDelegate.imagePath=@"";
}
else
{
appDelegate.imagePath=filePath;
}
PictureDisplayViewController *targetController = [[PictureDisplayViewController alloc] initWithNibName:@"PictureDisplayViewController" bundle:nil];
targetController.modalPresentationStyle = UIModalPresentationFullScreen;
[self.splitViewController presentViewController:targetController animated:YES completion:nil];
In PictureDisplayViewController
if(appDelegate.imagePath)
{
UIImage *image=[UIImage imageWithContentsOfFile:appDelegate.imagePath];
}
else
{
imageView.image=[UIImage imageNamed:@"default.png"];
}
default.png
is a default png pic in your bundle resource