iOS-獲取圖像尺寸

在執行下述方法之前,我們要先導入頭文件 #import <ImageIO/ImageIO.h>

/**
 *  根據圖片url獲取圖片尺寸 
 */
+ (CGSize)getImageSizeWithURL:(id)URL{    
    NSURL * url = nil;    
    if ([URL isKindOfClass:[NSURL class]]) {        
        url = URL;    
    }    
    if ([URL isKindOfClass:[NSString class]]) {        
        url = [NSURL URLWithString:URL];    
    }   
     if (!URL) {        
        return CGSizeZero;  // url不正確返回CGSizeZero    
    }    
    CGImageSourceRef imageSourceRef = CGImageSourceCreateWithURL((CFURLRef)url, NULL);    
    CGFloat width = 0, height = 0;       
    if (imageSourceRef) {        
        CFDictionaryRef imageProperties = CGImageSourceCopyPropertiesAtIndex(imageSourceRef, 0, NULL);               
        if (imageProperties != NULL) {                       
            CFNumberRef widthNumberRef = CFDictionaryGetValue(imageProperties, kCGImagePropertyPixelWidth);          
            if (widthNumberRef != NULL) {                
                CFNumberGetValue(widthNumberRef, kCFNumberFloat64Type, &width);            
            }                       
            CFNumberRef heightNumberRef = CFDictionaryGetValue(imageProperties, kCGImagePropertyPixelHeight);
            if (heightNumberRef != NULL) {
                CFNumberGetValue(heightNumberRef, kCFNumberFloat64Type, &height);
            }
            CFRelease(imageProperties);
        }
        CFRelease(imageSourceRef);    
    }    
    return CGSizeMake(width, height);
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,981評論 19 139
  • 這幾天公司有一個新的需求,就是要將我們開發的某些東西都抽取出來,打個比方我們開發了A項目,可以以后B項目要包含A項...
    黃魚兒啦啦啦閱讀 6,246評論 2 16
  • (原文:How to Create a Framework for iOS 作者:Sam Davies 譯者:Mr...
    王憲嶺閱讀 4,981評論 3 23
  • (原文:How to Create a Framework for iOS作者:Sam Davies 譯者:Mr_...
    Yaanco閱讀 2,404評論 4 5
  • 踏上旅程,路人也是風景的一部分。 我習慣在旅途中與陌生人搭訕,聽他們來自遠方的故事,聽他們奔波的辛勞,日子的甘苦,...
    任艾軍閱讀 271評論 0 1