android 通过图片url获取宽高_根据图片的链接获取图片的宽高

本文介绍了一种在Android中通过图片URL获取其宽高的方法,利用SDImageCache库检查内存和磁盘缓存,或者通过发送同步请求下载图片数据,然后解析图片尺寸。对于不同类型的图片(如PNG、GIF、JPEG),采用了不同的处理方式。
摘要由CSDN通过智能技术生成

//根据图片的链接获取图片的宽高

- (CGSize)downloadImageSizeWithURL:(id)imageURL

{

NSURL*URL =nil;if([imageURL isKindOfClass:[NSURL class]]){

URL=imageURL;

}if([imageURL isKindOfClass:[NSString class]]){

URL=[NSURL URLWithString:imageURL];

}if(URL ==nil)returnCGSizeZero;#ifdefdispatch_main_sync_safeif([[SDImageCache sharedImageCache] diskImageExistsWithKey:absoluteString]){

UIImage* image =[[SDImageCache sharedImageCache] imageFromMemoryCacheForKey:absoluteString];if(!image){

NSData* data =[[SDImageCache sharedImageCache] performSelector:@selector(diskImageDataBySearchingAllPathsForKey:) withObject:URL.absoluteString];

image=[UIImage imageWithData:data];

}if(image){returnimage.size;

}

}#endifCGSize size=CGSizeZero;

NSMutableURLRequest*request =[[NSMutableURLRequest alloc] initWithURL:URL];

NSString*pathExtendsion =[URL.pathExtension lowercaseString];if([pathExtendsion isEqualToString:@"png"]){

size=[self downloadPNGImageSizeWithRequest:request];

}else if([pathExtendsion isEqual:@"gif"]){

size=[self downloadGIFImageSizeWithRequest:request];

}else{

size=[self downloadJPGImageSizeWithRequest:request];

}if(CGSizeEqualToSize(CGSizeZero, size)){

NSData* data =[NSURLConnection sendSynchronousRequest:[NSURLRequest requestWithURL:URL] returningResponse:nil error:nil];

UIImage* image =[UIImage imageWithData:data];if(image){#ifdefdispatch_main_sync_safe

[[SDImageCache sharedImageCache] storeImage:image recalculateFromImage:YES imageData:data forKey:URL.absoluteString toDisk:YES];#endifsize=image.size;

}

}return

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值