从url中提取图像数组

时间:2011-12-29 02:54:06

标签: iphone objective-c ios json ipad

做了一些研究之后我有点困惑。如果我知道确切的目录,我可以从网址中获取单个图像,例如,

UIImage *image = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL  URLWithString:@"http://www.myUrl.com/pic/workaholics.png"]]];
UIImageView *view1 = [[UIImageView alloc] initWithImage:image];
[self.view addSubview:view1];

粗糙的这个很好,但如果你不知道确切的路径怎么办。在Linux中,您总是可以进行某种递归搜索,但是对于iOS,我无法弄明白。例如,在后一种情况下我指定的“pic”目录中,如果有其他目录称为pic1,pic2,pic3等,并且每个目录都有任意数量的png。我正在努力解决的问题是如何递归搜索“pic”目录以提取与.png匹配的所有目录内容。我会粗略然后存储这是NSData并转换为字符串,然后将内容存储在数组中。我在这一点上非常困惑。任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:1)

您的难点在于从Web服务器获取目录列表 - 因为您正在通过Web检索图像。许多Web服务器不会提供目录列表作为防止黑客攻击的安全措施。

如果您控制Web服务器,您可以重新配置它以提供目录列表 - 然后从目录级URL(http://www.myUrl.com/pic/)创建一个NSData对象 - 并解析此拉out目录中的所有文件。然后,您可以请求每张图片并自行将其添加到阵列中。

如果您不控制Web服务器,但可以写入目录,则可以通过创建清单文件(XML-plist是一种很好的格式)来实现类似的实现,该文件列出了目录中包含的文件名。每当您向目录添加新图片时,您都需要更新清单。

否则 - 你必须做一些非常脏/ hacky的事情,比如假设不超过n张图片,所有图片都有文件名“pic_m.png”,然后迭代从0到n的循环尝试检索每个直到你遇到失败为止。

答案 1 :(得分:0)

UIImage需要一个明确的东西(URL或文件路径)来从中获取数据。

一个可能的解决方案是通过NSFileManager的enumeratorAtPath:方法实现对.png文件的搜索。我链接到的参考指南甚至有一个代码片段可用于创建UIImages(只需将@"doc"切换到@png而不是scanDocument,而是执行{{1}事情)。

我会把它作为一个练习来弄清楚如何递归地做,但我希望我的回答可以帮助你!

答案 2 :(得分:0)

NSURL *url = [NSURL 
URLWithString:@”www.ArticleDean.com\images\sample.jpg”];
NSData *data = [NSData dataWithContentsOfURL:url];
UIImage *image = [[UIImage alloc] intiWithData:data]; 

尝试这个