我正在使用ALAssets在iPad中編寫圖像。完成後,我嘗試使用返回的URL創建UIImage,但不會加載。這是代碼:無法使用由ALAssets返回的路徑URL加載圖像
LAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library writeImageToSavedPhotosAlbum:[anImage CGImage] orientation:(ALAssetOrientation)[anImage imageOrientation] completionBlock:^(NSURL *assetURL, NSError *error){
if (!error) {
CGImageSourceRef src = CGImageSourceCreateWithURL((CFURLRef) [NSURL fileURLWithPath:[assetURL absoluteString]], NULL);
我的目的是將圖像保存到該設備,然後使用ImageIO的將其轉換爲另一種格式,並最終將其發送到Web服務。 CGImageSourceRef爲null,我也用標準UIImage嘗試了相同的結果。
我在做什麼錯在這裏?
編輯:問題是當創建CFURLRef。 如果我做
CGImageSourceCreateWithURL((CFURLRef) assetURL, NULL);
我得到這個錯誤
的ImageIO:CGImageSourceCreateWithURL CFURLCreateDataAndPropertiesFromResource失敗,錯誤代碼-11。
但是,如果我嘗試將URL轉換與
[NSURL fileURLWithPath:[assetURL absoluteString]]
路徑更改爲
assets-library:/asset/asset.JPG%3Fid=57BBBA99-E7BF-4DB7-839E-F915005E6DFA&ext=JPG -- file://localhost/
我無法找到如何正確地創建該方法所需的CFURLRef。我試着打印所有我能想到的轉換,這是結果
[assetURL relativePath]
[assetURL relativeString]
[assetURL absoluteURL]
[assetURL absoluteString]
/asset.JPG ,
assets-library://asset/asset.JPG?id=57BBBA99-E7BF-4DB7-839E-F915005E6DFA&ext=JPG
assets-library://asset/asset.JPG?id=57BBBA99-E7BF-4DB7-839E-F915005E6DFA&ext=JPG
assets-library://asset/asset.JPG?id=57BBBA99-E7BF-4DB7-839E-F915005E6DFA&ext=JPG
[NSURL fileURLWithPath:[assetURL relativePath]]
[NSURL fileURLWithPath:[assetURL relativeString]]
[NSURL fileURLWithPath:[assetURL absoluteString]]
file://localhost/asset.JPG
assets-library:/asset/asset.JPG%3Fid=57BBBA99-E7BF-4DB7-839E-F915005E6DFA&ext=JPG -- file://localhost/
assets-library:/asset/asset.JPG%3Fid=57BBBA99-E7BF-4DB7-839E-F915005E6DFA&ext=JPG -- file://localhost/
請幫助,我堅持這種:-(
非常感謝,效果很好! – momo 2012-01-25 08:26:31
對不起,但這不起作用。它創建一個圖像,是的,但傳入的最大尺寸不起作用 - 它只是返回一個非常大的圖像。 – akaru 2012-09-05 23:02:56
你說得對,下面是我在特定情況下所做的,希望它能幫助某人 – momo 2012-10-05 07:45:20