zoukankan      html  css  js  c++  java
  • 根据图片的链接获取图片的宽高

    //根据图片的链接获取图片的宽高
    - (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)
            return CGSizeZero;
     
    #ifdef dispatch_main_sync_safe
        if([[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){
                return image.size;
            }
        }
    #endif
        
        CGSize 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){
    #ifdef dispatch_main_sync_safe
                [[SDImageCache sharedImageCache] storeImage:image recalculateFromImage:YES imageData:data forKey:URL.absoluteString toDisk:YES];
    #endif
                size = image.size;
            }
        }
        return size;
    }

    原帖地址:http://blog.csdn.net/li6185377/article/details/26225799
  • 相关阅读:
    OC与AS3的观察者模式比较以及外部回调
    判断矩形重叠
    2010谷歌校园招聘笔试题
    2011谷歌校园招聘笔试题
    2012Google校园招聘笔试题
    2013谷歌校园招聘笔试题2
    2013谷歌校园招聘笔试题
    2012搜狗校园招聘笔试题
    2013搜狗校园招聘笔试题
    搜狐面试题
  • 原文地址:https://www.cnblogs.com/hw140430/p/4189436.html
Copyright © 2011-2022 走看看