Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/114.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何从URL下载图像_Ios_Xcode_Swift_Swift2 - Fatal编程技术网

Ios 如何从URL下载图像

Ios 如何从URL下载图像,ios,xcode,swift,swift2,Ios,Xcode,Swift,Swift2,所以我尝试从url链接下载图像,然后尝试将它们添加到下载图像的数组中,但遇到了麻烦 我搜索了stackoverflow和相关网站,但没有找到类似的问题 我正在下载两种图像 第一种类型的示例是: 第二种类型的示例是: 请单击两者以查看差异 下载第一种类型没有问题,只需使用以下代码即可。但是正如你所看到的,第二个url链接会在点击时自动下载,因此我在提取它时得到零 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEF

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

我搜索了stackoverflow和相关网站,但没有找到类似的问题

我正在下载两种图像

第一种类型的示例是:

第二种类型的示例是:

请单击两者以查看差异

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

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
       });
    }
那么,我如何下载第二种类型的图像呢?它成功地下载了它。但无法访问它,因为它存储在计算机的某个地方,但我不确定


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

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

标记图像文件格式(TIFF)

联合摄影专家组(JPEG)

图形交换格式(GIF)

便携式网络图形(PNG)

Windows位图格式(DIB)

Windows图标格式(.ico)

Windows光标(.cur)

XWindow位图(.xbm)


希望能有所帮助。

感谢您的及时回复!附近有工作吗?除了在后端将图像转换为JPEG或其他格式之外?谢谢大家:)我在github上发现了以下项目:我没有尝试过,但开发者在描述中所说的听起来很有希望。谢谢@IgorB。我已经接受了你的回答。您提供的库具有从webp转换的选项。我认为如果我在后端这样做会更好,以改善前端体验。最后一个问题是,你知道为什么ios不支持webp吗?有质量问题吗?@AkshanshThakur我想性能很重要。对此不太确定,但正如您所知,WebP提供了更好的压缩结果——可能是算法也在消耗more@AkshanshThakur关于质量损失-这种格式提供了两种选择-您可以压缩您的图像在松散或无损表示