2010-02-15 28 views

回答

17

肯尼,你有答案!爲了說明,我總是認爲代碼更有幫助。

//I do this in the didFinishPickingImage:(UIImage *)img method 

NSData* imageData = UIImageJPEGRepresentation(img, 1.0); 


//save to the default 100Apple(Camera Roll) folder. 

[imageData writeToFile:@"/private/var/mobile/Media/DCIM/100APPLE/customImageFilename.jpg" atomically:NO]; 
+2

保存到文檔文件夾的示例 NSArray * paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES); NSString * documentsDirectory = [paths objectAtIndex:0]; NSString * filePath2 = [NSString stringWithFormat:@「%@ /%@。jpg」,documentsDirectory,fileName]; NSData * imageData = UIImageJPEGRepresentation(drawImage.image,1.0); [imageData writeToFile:filePath2 atomically:NO]; – 2010-11-21 23:31:24

+0

[imageData writeToFile:@「/ private/var/mobile/Media/DCIM/100APPLE/customImageFilename.jpg」原子地:NO];什麼是私人/ var/mobile文件夾? 這是一個標準的地方寫出一個文件在iOS? – user798719 2011-08-01 22:58:37

+3

問題是,如果蘋果將允許使用該代碼的應用程序... http://stackoverflow.com/questions/2884003/will-the-app-get-rejected-if-you-write-image-to-private -var-mobile-media-dcim-1?lq = 1 – 2013-01-24 10:24:21

10

UIImageWriteToSavedPhotosAlbum()僅用於保存到照片相機膠捲。要保存到自定義文件夾,您需要將UIImage轉換爲帶有UIImageJPEGRepresentation()UIImagePNGRepresentation()的NSData,然後將此NSData保存到您喜歡的任何位置。

+0

肯尼,謝謝。 +1 – erastusnjuki 2010-02-16 02:57:06

0

您可以使用下面的代碼,而無需使用ALAssetsLibrary的...

NSString *fileName; 

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
{ 
[picker dismissViewControllerAnimated:YES completion:^{ 

if([picker sourceType] == UIImagePickerControllerSourceTypeCamera) 
      { 
       UIImageWriteToSavedPhotosAlbum(image,nil, nil, nil); 
       [self performSelector:@selector(GetImageName) withObject:nil afterDelay:0.5]; 
      } 
      else 
      { 
       NSURL *refURL = [info valueForKey:UIImagePickerControllerReferenceURL]; 
       PHFetchResult *result = [PHAsset fetchAssetsWithALAssetURLs:@[refURL] options:nil]; 
       fileName = [[result firstObject] filename]; 
      } 
}]; 

-(void)GetImageName 
{ 
NSString *str [email protected]""; 
PHFetchOptions *fetchOptions = [[PHFetchOptions alloc] init]; 
fetchOptions.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"creationDate" ascending:YES]]; 
PHFetchResult *fetchResult = [PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeImage options:fetchOptions]; 

if (fetchResult != nil && fetchResult.count > 0) { 

    str = [[fetchResult lastObject] filename]; 
} 

fileName = str; 
} 
相關問題