iOS開發筆記之根據圖片URL獲取圖片尺寸
阿新 • • 發佈:2019-02-07
載入網路圖片時,根據Url獲取圖片的尺寸進行UI佈局。
可將方法+ (CGSize)getImageSizeWithURL:(id)URL;放在UIImage的分類中。
引入系統的ImageIO.framework
/** * 根據圖片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; } 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); }