问题
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"];
回答1:
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;
回答2:
//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];
回答3:
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];
回答4:
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
来源:https://stackoverflow.com/questions/17916753/how-to-display-image-from-documents-folder-in-of-iphone-to-image-viewi