如何将图像下载到应用程序中?

时间:2013-02-08 21:44:49

标签: ios objective-c

如何将图像下载到应用程序中?就像我想从我的网站上获取图像并将其下载到人的iPhone应用程序中以显示在应用程序中?基本上,网址不会显示图片。

更具体:

如何在不使用UIImage的情况下将图像下载到应用程序。我想获取图像并将其下载为文件名“anne.png”,然后使用UIImage作为anne.png在整个应用程序中引用它。请参阅 - 我想先下载它,以便当有人第二次访问应用程序时,他们会看到图像,并在此期间看到默认图像..谢谢。?

2 个答案:

答案 0 :(得分:0)

对于单张图片,您可以使用以下内容。请记住,这将阻止用户界面直到图像完全下载。

[UIImage imageWithData:[NSData dataWithContentsOfURL:photoURL]];

要在不阻止用户界面的情况下下载图像:

dispatch_queue_t downloadQueue = dispatch_queue_create(“image downloader”, NULL);

dispatch_async(downloadQueue, ^{
    [NSData dataWithContentsOfURL:photoURL];
    dispatch_async(dispatch_get_main_queue(), ^{
        UIImage *image = [UIImage imageWithData:imageData];
        // Code to show the image in the UI goes here
    });
});

要将图像保存到手机相机胶卷,您可以使用UIImageWriteToSavedPhotosAlbum

将图像保存在应用程序的目录中。使用NSData的writeToFile:atomically:

要从网站下载多张图片,这可以帮助您:

What's the best way to download multiple images and display multiple UIImageView?

答案 1 :(得分:0)

http://mobiledevelopertips.com/cocoa/download-and-create-an-image-from-a-url.html

远程图片的网址

我们首先创建一个远程资源的URL:

NSURL *url = [NSURL URLWithString: @"http://mobiledevelopertips.com/images/logo-iphone-dev-tips.png"];

从NSData创建UIImage

下一步是使用从URL下载的数据构建UIImage,该数据包含一个保存远程图像内容的NSData对象:

 UIImage *image = [UIImage imageWithData: [NSData dataWithContentsOfURL:url]];

将它放在一起

以下是如何将它们全部包装在一起,通过从上面的UIImage创建UIImageView,将远程图像作为子视图添加到现有视图中:

   NSURL *url = [NSURL URLWithString:@"http://mobiledevelopertips.com/images/logo-iphone-dev-tips.png"];
UIImage *image = [UIImage imageWithData: [NSData dataWithContentsOfURL:url]]; 
  [self.view addSubview:[[UIImageView alloc] initWithImage:image]];