2014-09-26 168 views
1

我需要將文件從ALAssetsLibrary轉換爲NSData,但我得到零。如何轉換ALAssets至NSData?

我使用此代碼

path = file:///assets-library://asset/asset.mp4?.... 
NSURL *url = [[NSURL alloc] initFileURLWithPath:path]; 
NSData *dates = [NSData dataWithContentsOfURL: url]; 

如何正確地做到這一點?

+0

[使用ALAssetsLibrary和ALAsset採取了圖片作爲NSData的]的可能重複(http://stackoverflow.com/questions/8473110/using-alassetslibrary-and-alasset-拿出圖像爲nsdata) – 2014-09-26 11:03:28

+0

你有答案或沒有? – 2014-10-14 09:51:57

回答

3

希望這將幫助ü

ALAssetsLibrary *assetLibrary=[[ALAssetsLibrary alloc] init]; 
      [assetLibrary assetForURL:[[self.imagedata objectAtIndex:i] valueForKey:UIImagePickerControllerReferenceURL] resultBlock:^(ALAsset *asset) 
      { 
       ALAssetRepresentation *rep = [asset defaultRepresentation]; 
       Byte *buffer = (Byte*)malloc(rep.size); 
       NSUInteger buffered = [rep getBytes:buffer fromOffset:0.0 length:rep.size error:nil]; 
       NSData *data = [NSData dataWithBytesNoCopy:buffer length:buffered freeWhenDone:YES];//this is NSData may be what you want 
       [data writeToFile:photoFile atomically:YES];//you can save image later 
      } 
      failureBlock:^(NSError *err) { 
       NSLog(@"Error: %@",[err localizedDescription]); 
      }]; 
+1

我已經使用這段代碼來獲取GIF圖片,但是這個工作正常,但是不正確,動畫狀態並沒有停留在GIF圖片上,並且它的大小被壓縮了,其他任何選項都會有用。 – 2015-07-04 17:49:53