Iphone:如何在图像视图中显示文档目录图像?
Posted
技术标签:
【中文标题】Iphone:如何在图像视图中显示文档目录图像?【英文标题】:Iphone : How to Display Document Directory images in Image View? 【发布时间】:2011-07-12 11:30:18 【问题描述】:在文档目录文件夹中存储的应用图像中,
我想在图像视图中显示特定的图像,
该图像如何在文档目录的图像视图中显示?
【问题讨论】:
这里我能想到的唯一答案是[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"my_image"]]
。为什么这对你不起作用?
我正在从服务器下载图像。图像保存在文档目录中。我想在图像视图中显示图像
你好 Ankit。请检查我的答案。我也提供了示例代码。这很容易。
【参考方案1】:
示例代码:
- (NSString *)applicationDocumentsDirectory
return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
-(void)loadimage
NSString *workSpacePath=[[self applicationDocumentsDirectory] stringByAppendingPathComponent:@"your image-name"];
UIImageView *myimage=[UIImageView alloc] initWithFrame:CGRectMake(0,0,20,20)];
myimage.image=[UIImage imageWithData:[NSData dataWithContentsOfFile:workSpacePath]];
[self.view addSubView:myimage];
[myimage release];
TNQ
【讨论】:
您的示例代码适用于捆绑图像。在这里,我们需要将图像从文档目录获取到图像视图。【参考方案2】:您可以通过了解图像的名称来实现它,因此,当您存储图像时,您需要将这些图像的一些信息存储在数据库中,(或者您可以在某些地方使用它),然后从数据源中获取图片的名称,工作如下:
NSString *str = [NSString stringWithFormat:@"%@.jpg",[myGlobleArrayOfImageNames objectAtIndex:imageCounter]];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *fullImgNm=[documentsDirectory stringByAppendingPathComponent:[NSString stringWithString:str]];
[mainSlideShowImageView setImage:[UIImage imageWithContentsOfFile:fullImgNm]];
【讨论】:
【参考方案3】:在这里,您可以在 View 中获取 UIImageView 并将其添加到视图中,并执行以下操作:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *imageFilePath;
NSError *err;
imageFilePath = [documentsDirectory stringByAppendingPathComponent:@"image1.png"];
UIImageView *objImageView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 10, 100, 100)];
objImageView.image = [UIImage imageWithContentsOfFile: imageFilePath];
[self.view addSubVIew:objImageView.image];
[objImageView release];
如果您还需要任何帮助,请告诉我。
【讨论】:
您可以添加 imageview 的路径,您可以使用以下命令直接将图像从该路径添加到 imageview:objImageView.image = [UIImage imageWithContentsOfFile: imageFilePath];【参考方案4】:NSArray *directoryPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString *imagePath = [directoryPath objectAtIndex:0];
imagePath= [imagePath stringByAppendingPathComponent:@"imagename.png"];
NSData *data = [NSData dataWithContentsOfFile:imagePath];
UIImage *img = = [UIImage imageWithData:data];
您可以将此图像显示到 uiimageview
【讨论】:
【参考方案5】:您需要以下几行代码才能从文档目录中获取 UIImage
-(UIImage*)getImage:(NSString *)strImageName
NSString *documentDirectory=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSString *imagePath=[documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"/%@",strImageName]];
UIImage *image=[UIImage imageWithContentsOfFile:imagePath];
return image;
调用上面的函数并使用 UIImage 对象来设置你想要的任何地方。 你也可以把这个方法写在一个通用类中,以便在任何地方使用它。
【讨论】:
【参考方案6】:除了这些答案之外,我发现检查文件是否存在这样的好习惯......
NSString *directory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *file = [directory stringByAppendingPathComponent@"my_image.jpg"];
if ([[NSFileManager defaultManager] fileExistsAtPath:file])
self.myimageview = [UIImage imageWithData:[NSData dataWithContentsOfFile: file]];
【讨论】:
【参考方案7】:简单使用此代码
NSFileManager *filemgr =[NSFileManager defaultManager];
NSArray *dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *docsDir = [dirPaths objectAtIndex:0];
NSString *dataPath = [docsDir stringByAppendingPathComponent:@"/yourdirectory/image.jpg"];
NSData *imgData = [[NSData alloc] initWithContentsOfURL:[NSURL fileURLWithPath:dataPath]];
self.imageview.image = [[UIImage alloc] initWithData:imgData];
【讨论】:
以上是关于Iphone:如何在图像视图中显示文档目录图像?的主要内容,如果未能解决你的问题,请参考以下文章