我需要讀取圖像的屬性而不加載或下載它。實際上,我已經實現了一個使用CGImageSourceCreateWithUrl來實現這個功能的簡單方法。 我的問題是它總是返回錯誤,因爲看起來imageSource是空的。那麼我能做些什麼來解決它? 在NSURL對象中,我傳遞的URL如下: 「http://www.example.com/wp-content/uploads/image.jpg」,還包含ALAssets庫Id,用於檢索手機內部的圖像,如「assets-library://asset/asset.JPG?id = E5F41458-962D-47DD-B5EF- E606E2A8AC7A & ext = JPG「。 這是我的方法:CGImageSourceCreateWithURL總是返回NULL
-(NSString *) getPhotoInfo:(NSString *)paths{
NSString *xmlList = @「test」;
NSURL * imageFileURL = [NSURL fileURLWithPath:paths];
NSLog(@"imageFileURL %@", imageFileURL);
CGImageSourceRef imageSource = CGImageSourceCreateWithURL((__bridge CFURLRef)(imageFileURL), NULL);
if (imageSource == NULL) {
// Error loading image
NSLog(@"Error loading image");
}
CGFloat width = 0.0f, height = 0.0f;
CFDictionaryRef imageProperties = CGImageSourceCopyPropertiesAtIndex(imageSource, 0, NULL);
NSLog(@"image source %@", imageSource);
return xmlList;
}
我已經看到了這個職位,嘗試修復它,但似乎沒有工作:
- CGImageSourceRef imageSource = CGImageSourceCreateWithURL returns NULL
- CGImageSourceCreateWithURL with authentication
- accessing UIImage properties without loading in memory the image
在我的項目ARC已啓用。
感謝
由於現在更清晰如果我使用像「http://example.com/name.jpg」這樣的url,但是在使用類似「assets-library://asset/asset.JPG?id = E5F41458- 962D-47DD-B5EF-E606E2A8AC7A&ext = JPG「?它是使用ALAsset庫建立的,在這種情況下,它總是返回空值 – Hieicker
[NSURL URLWithString:]應該與」assets-library://asset/asset.JPG?id = E5F41458-962D-47DD-B5EF-E606E2A8AC7A&ext = JP G「,我會想。它返回零,你是說? –
謝謝!事實上,它並不返回零,但這種錯誤「ImageIO:CGImageSourceCreateWithURL CFURLCreateDataAndPropertiesFromResource失敗,錯誤代碼爲-11。」它還返回錯誤「Error loading image」,顯然在返回後(總是在日誌中)imageSource(null) – Hieicker