2010-02-15 5 views

risposta

17

Kenny, hai avuto la risposta! Per esempio, penso sempre che il codice sia più utile.

//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

Un salvataggio di esempio nella cartella documenti NSArray * paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES); NSString * documentsDirectory = [percorsi objectAtIndex: 0]; NSString * filePath2 = [NSString stringWithFormat: @ "% @ /% @. Jpg", documentsDirectory, fileName]; NSData * imageData = UIImageJPEGRepresentation (drawImage.image, 1.0); [imageData writeToFile: filePath2 atomicamente: NO]; –

+0

[imageData writeToFile: @ "/ private/var/mobile/Media/DCIM/100APPLE/customImageFilename.jpg" atomically: NO]; Cos'è questa cartella privata/var/mobile? Si tratta di un luogo standard per scrivere un file in ios? – user798719

+3

La domanda è, se Apple consentirà un'app con quel codice ... http://stackoverflow.com/questions/2884003/will-the-app-get-rejected-if-you-write-image-to-private -var-mobile-media-dcim-1? lq = 1 –

10

UIImageWriteToSavedPhotosAlbum() viene utilizzato solo per il salvataggio nel rullino fotografico. Per salvare in una cartella personalizzata, devi convertire UIImage in NSData con UIImageJPEGRepresentation() o UIImagePNGRepresentation(), quindi salvare questo NSData in qualsiasi luogo tu voglia.

+0

Kenny, grazie. +1 – erastusnjuki

0

È possibile utilizzare sotto codice, senza l'uso di 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; 
} 
Problemi correlati