如何从URL Swift下载图像

时间:2016-06-03 05:55:23

标签: ios xcode swift swift2

所以我尝试从url链接下载图像,然后尝试将它们添加到下载图像的数组中,但遇到了麻烦。

我已经搜索了stackoverflow和相关网站,但找不到类似的问题。

我正在下载两种图像。

第一类的例子是:http://img.youtube.com/vi/7lC3UZtLa6Y/0.jpg

第二种类型的示例是:http://master.dextra.xyz/_uploads/photos/image_111.webp

请点击两者以查看差异

我只需使用以下代码即可下载第一种类型。但正如你所看到的那样,第二个url链接会在点击时自行下载,因此我在提取它时会得到nil

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) {

 // Downloading image 1
            let data = NSData(contentsOfURL: NSURL(string: "http://img.youtube.com/vi/7lC3UZtLa6Y/0.jpg")!)
            self.downloadedImages.append(UIImage(data: data!)!)
// No problem downloading above image, also shows up in my app

      // Downloading image 2
        let data = NSData(contentsOfURL: NSURL(string: "http://master.dextra.xyz/_uploads/photos/image_111.webp")!)
            self.downloadedImages.append(UIImage(data: data!)!)
        // getting nil in UIImage(data: data!), although it says that data is around 300000 bytes.

        dispatch_async(dispatch_get_main_queue(), {
        // Updating UI
       });
    }

那么,我该如何下载第二种图像?它成功下载。但无法访问它,因为它存储在某个地方的计算机中,虽然我不确定

任何帮助将不胜感激。感谢

1 个答案:

答案 0 :(得分:3)

我已经尝试过您的代码了。在第二种情况下成功下载图像。您获得nil而不是有效UIImage的原因是不支持的图像格式。以下是支持的格式列表:

标记图像文件格式(TIFF)

联合图像专家组(JPEG)

图形交换格式(GIF)

便携式网络图形(PNG)

Windows位图格式(DIB)

Windows图标格式(.ico)

Windows Cursor(.cur)

XWindow位图(.xbm)

https://developer.apple.com/library/ios/documentation/2DDrawing/Conceptual/DrawingPrintingiOS/LoadingImages/LoadingImages.html#//apple_ref/doc/uid/TP40010156-CH17-SW7

希望它有所帮助。