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:如何在图像视图中显示文档目录图像?的主要内容,如果未能解决你的问题,请参考以下文章

在保存在文档目录中的表格视图中显示图像

如何在iphone中保存缩放的图像

如何从我的 iPhone App 文档目录中选择所有图像

如何将背景图像放到iPhone的文本字段和文本视图中?

我如何将图像下载到 iphone 模拟器中的文档文件中并通过它在 UIImageView 中的路径再次显示它?

从服务器获取多个 url 图像并在 iphone 的滚动视图中显示