【问题标题】:iPhone iOS get thumbnail image from Vimeo : how to turn response into an image?iPhone iOS 从 Vimeo 获取缩略图:如何将响应转换为图像?
【发布时间】:2012-04-04 06:29:02
【问题描述】:

我正在尝试从 Vimeo 获取视频缩略图,但由于某种原因,我无法将返回的 NSData 转换为 UIImage。这是我的代码。如何将text/html; charset=UTF-8 类型的NSData 变成UIImage

-(void)getThumbnails
{
    int count = _videos.count;
    Video* v = nil;
    RKRequest* r = nil;

    for( int i = 0; i<count; i++)
    {
        v = [_videos objectAtIndex:i];


        r = [[RKClient sharedClient] get:v.thumbnail delegate:self];
        GMGridViewCell* gridViewCell = [self GMGridView:_gmGridView cellForItemAtIndex:i];
 //prints http://b.vimeocdn.com/ts/257/009/257009714_200.jpg
        NSLog(@"thumbnail url: %@",v.thumbnail);

        [r setUserData:gridViewCell];

    }

}

回复如下:

-(void)requestQueue:(RKRequestQueue *)queue didLoadResponse:(RKResponse *)response
{

    if([response.request.userData isKindOfClass:[GMGridViewCell class]])
    {


        //prints content type: text/html; charset=UTF-8
        NSLog(@"content type: %@",response.contentType);

        GMGridViewCell* cell = response.request.userData;

        NSData* responseBody = response.body;
        UIImage* image = [UIImage imageWithData:responseBody];

        cell.imageView.image = image;

          }
}

更新:

在将响应作为正文检查后,vimeo 似乎返回了一个未找到的页面,而在浏览器中输入该页面会返回一个图像:/

【问题讨论】:

    标签: html objective-c ios thumbnails vimeo


    【解决方案1】:

    虽然我无法帮助您解决主要问题,但我可以为您澄清一下,以防您不知道,NSData 本质上只是一个字节缓冲区,因此要使用您需要的 [UIImage imageWithData:] 消息NSData 包含正确的图像文件(jpg、png 等)。

    如果您的响应不是纯图像而是其他内容,则需要解析 NSData 以提取所需的图像数据。

    我希望这能让你走上正轨。

    【讨论】:

      【解决方案2】:

      我想出了答案:

      r = [[RKClient sharedClient] get:v.thumbnail delegate:self];
      

      在请求前面初始化客户端时设置的默认路径,创建一个 http:// ...http://... 类似服务器无法识别的路径,回复未找到消息。

      【讨论】:

        猜你喜欢
        • 2010-11-24
        • 2021-07-23
        • 2013-08-31
        • 1970-01-01
        • 2011-10-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-05
        相关资源
        最近更新 更多