我正在尝试从以下网址读取图片属性:
http://www.example.com/ws/img/8
因为它是一个web服务,我需要将身份验证传递给URL。 我不想下载图片来阅读它的属性。所以我试图像这样使用CGImageSourceCreateWithURL:
CGImageSourceRef imageSourceRef = CGImageSourceCreateWithURL((__bridge CFURLRef)[NSURL URLWithString:@"http://admin:admin@www.example.com/ws/img/8"], NULL);
CFDictionaryRef props = CGImageSourceCopyPropertiesAtIndex(imageSourceRef, 0, NULL);
但props
仍然返回null。
有没有办法通过身份验证访问图像属性? (如果我通过RestKit函数下载图像,它当然可以工作)
由于
答案 0 :(得分:1)
我不会使用CGImageSourceCreateWithURL
,而是使用NSURLRequest
进行相应的身份验证,然后将图片下载为NSData
,然后使用CGImageSourceCreateWithData
,或者只是下载图片如果已经有效,请使用RestKit。
这将使您在验证协议方面具有更大的灵活性。如果您在没有添加所需信息的情况下进行基本的HTTP GET,那么withURL初始化程序实际上只是一个实用程序函数。
答案 1 :(得分:0)
我认为您需要查看使用CGImageSourceCreateWithDataProvider
并使用CGDataProvider
仅下载图片中请求的信息。这样您就可以使用API进行下载,从而可以选择添加Authorization标头。
如果您拥有对服务器的控制权,那么最好全面创建一个索引文件,该文件为您提供可用图像的详细信息以及它们的大小。您显然是从某处获取图像URL,因此它也应该同时返回一些上下文数据。