NSURL*url=[NSURLURLWithString:[model.contentobjectForKey:@"p_w_picpath"]];//请求网络地址数据的同步方法//因为这个方法在子线程(全局队列)中执行,所以不需要考虑死线程的问题SDWebImageManager*manager=[SDWebImageManagersharedManager];[managerdiskImageExistsForURL:url];if([managerdiskImageExistsForURL:url]){LOG(@"11111")self.speakImage=[[managerp_w_picpathCache]p_w_picpathFromDiskCacheForKey:url.absoluteString];}else{LOG(@"3333333")NSData*data=[NSDatadataWithContentsOfURL:url];self.speakImage=[UIImagep_w_picpathWithData:data];}

IOS 获取网络图片大小

/**
获取网络图片的Size, 先通过文件头来获取图片大小
如果失败 会下载完整的图片Data 来计算大小 所以最好别放在主线程
如果你有使用SDWebImage就会先看下 SDWebImage有缓存过改图片没有
支持文件头大小的格式 png、gif、jpghttp://www.cocoachina.com/bbs/read.php?tid=165823
*/
+(CGSize)downloadImageSizeWithURL:(id)p_w_picpathURL;

//讨厌警告-(id)diskImageDataBySearchingAllPathsForKey:(id)key{returnnil;}+(CGSize)downloadImageSizeWithURL:(id)p_w_picpathURL{NSURL*URL=nil;if([p_w_picpathURLisKindOfClass:[NSURLclass]]){URL=p_w_picpathURL;}if([p_w_picpathURLisKindOfClass:[NSStringclass]]){URL=[NSURLURLWithString:p_w_picpathURL];}if(URL==nil)returnCGSizeZero;NSString*absoluteString=URL.absoluteString;#ifdefdispatch_main_sync_safeif([[SDImageCachesharedImageCache]diskImageExistsWithKey:absoluteString]){UIImage*p_w_picpath=[[SDImageCachesharedImageCache]p_w_picpathFromMemoryCacheForKey:absoluteString];if(!p_w_picpath){NSData*data=[[SDImageCachesharedImageCache]performSelector:@selector(diskImageDataBySearchingAllPathsForKey:)withObject:URL.absoluteString];p_w_picpath=[UIImagep_w_picpathWithData:data];}if(!p_w_picpath){returnp_w_picpath.size;}}#endifNSMutableURLRequest*request=[[NSMutableURLRequestalloc]initWithURL:URL];NSString*pathExtendsion=[URL.pathExtensionlowercaseString];CGSizesize=CGSizeZero;if([pathExtendsionisEqualToString:@"png"]){size=[selfdownloadPNGImageSizeWithRequest:request];}elseif([pathExtendsionisEqual:@"gif"]){size=[selfdownloadGIFImageSizeWithRequest:request];}else{size=[selfdownloadJPGImageSizeWithRequest:request];}if(CGSizeEqualToSize(CGSizeZero,size)){NSData*data=[NSURLConnectionsendSynchronousRequest:[NSURLRequestrequestWithURL:URL]returningResponse:nilerror:nil];UIImage*p_w_picpath=[UIImagep_w_picpathWithData:data];if(p_w_picpath){#ifdefdispatch_main_sync_safe[[SDImageCachesharedImageCache]storeImage:p_w_picpathrecalculateFromImage:YESp_w_picpathData:dataforKey:URL.absoluteStringtoDisk:YES];#endifsize=p_w_picpath.size;}}returnsize;}+(CGSize)downloadPNGImageSizeWithRequest:(NSMutableURLRequest*)request{[requestsetValue:@"bytes=16-23"forHTTPHeaderField:@"Range"];NSData*data=[NSURLConnectionsendSynchronousRequest:requestreturningResponse:nilerror:nil];if(data.length==8){intw1=0,w2=0,w3=0,w4=0;[datagetBytes:&w1;range:NSMakeRange(0,1)];[datagetBytes:&w2;range:NSMakeRange(1,1)];[datagetBytes:&w3;range:NSMakeRange(2,1)];[datagetBytes:&w4;range:NSMakeRange(3,1)];intw=(w1<<24)+(w2<<16)+(w3<<8)+w4;inth2=0,h3=0,h4=0,h5=0;[datagetBytes:&h2;range:NSMakeRange(4,1)];[datagetBytes:&h3;range:NSMakeRange(5,1)];[datagetBytes:&h4;range:NSMakeRange(6,1)];[datagetBytes:&h5;range:NSMakeRange(7,1)];inth=(h2<<24)+(h3<<16)+(h4<<8)+h5;returnCGSizeMake(w,h);}returnCGSizeZero;}+(CGSize)downloadGIFImageSizeWithRequest:(NSMutableURLRequest*)request{[requestsetValue:@"bytes=6-9"forHTTPHeaderField:@"Range"];NSData*data=[NSURLConnectionsendSynchronousRequest:requestreturningResponse:nilerror:nil];if(data.length==4){shortw1=0,w2=0;[datagetBytes:&w1;range:NSMakeRange(0,1)];[datagetBytes:&w2;range:NSMakeRange(1,1)];shortw=w1+(w2<<8);shorth2=0,h3=0;[datagetBytes:&h2;range:NSMakeRange(2,1)];[datagetBytes:&h3;range:NSMakeRange(3,1)];shorth=h2+(h3<<8);returnCGSizeMake(w,h);}returnCGSizeZero;}+(CGSize)downloadJPGImageSizeWithRequest:(NSMutableURLRequest*)request{[requestsetValue:@"bytes=0-209"forHTTPHeaderField:@"Range"];NSData*data=[NSURLConnectionsendSynchronousRequest:requestreturningResponse:nilerror:nil];if([datalength]<=0x58){returnCGSizeZero;}if([datalength]<210){//肯定只有一个DQT字段shortw1=0,w2=0;[datagetBytes:&w1;range:NSMakeRange(0x60,0x1)];[datagetBytes:&w2;range:NSMakeRange(0x61,0x1)];shortw=(w1<<8)+w2;shorth2=0,h3=0;[datagetBytes:&h2;range:NSMakeRange(0x5e,0x1)];[datagetBytes:&h3;range:NSMakeRange(0x5f,0x1)];shorth=(h2<<8)+h3;returnCGSizeMake(w,h);}else{shortword=0x0;[datagetBytes:&word;range:NSMakeRange(0x15,0x1)];if(word==0xdb){[datagetBytes:&word;range:NSMakeRange(0x5a,0x1)];if(word==0xdb){//两个DQT字段shortw1=0,w2=0;[datagetBytes:&w1;range:NSMakeRange(0xa5,0x1)];[datagetBytes:&w2;range:NSMakeRange(0xa6,0x1)];shortw=(w1<<8)+w2;shorth2=0,h3=0;[datagetBytes:&h2;range:NSMakeRange(0xa3,0x1)];[datagetBytes:&h3;range:NSMakeRange(0xa4,0x1)];shorth=(h2<<8)+h3;returnCGSizeMake(w,h);}else{//一个DQT字段shortw1=0,w2=0;[datagetBytes:&w1;range:NSMakeRange(0x60,0x1)];[datagetBytes:&w2;range:NSMakeRange(0x61,0x1)];shortw=(w1<<8)+w2;shorth2=0,h3=0;[datagetBytes:&h2;range:NSMakeRange(0x5e,0x1)];[datagetBytes:&h3;range:NSMakeRange(0x5f,0x1)];shorth=(h2<<8)+h3;returnCGSizeMake(w,h);}}else{returnCGSizeZero;}}}