2010-02-15 9 views

Odpowiedz

17

Kenny, miałeś odpowiedź! Dla ilustracji zawsze uważam, że kod jest bardziej pomocny.

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

Próbka zapisana w folderze dokumentów NSArray * ścieżki = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES); NSString * documentsDirectory = [paths objectAtIndex: 0]; NSString * filePath2 = [NSString stringWithFormat: @ "% @ /% @ .jpg", documentsDirectory, fileName]; NSData * imageData = UIImageJPEGReprezentacja (drawImage.image, 1.0); [imageData writeToFile: filePath2 atomically: NO]; –

+0

[imageData writeToFile: @ "/ private/var/mobile/Media/DCIM/100APPLE/customImageFilename.jpg" atomically: NO]; Co to jest folder prywatny/zmienny/mobilny? Czy jest to standardowe miejsce do zapisu pliku w ios? – user798719

+3

Pytanie brzmi, czy jabłko pozwoli aplikacji z tym kodem ... http://stackoverflow.com/questions/2884003/will-the-app-get-rejected-if-you-write-image-to-private -var-mobile-media-dcim-1? lq = 1 –

10

służy tylko do zapisywania w rolce aparatu fotograficznego. Aby zapisać do niestandardowego folderu, musisz przekonwertować UIImage na NSData za pomocą UIImageJPEGRepresentation() lub UIImagePNGRepresentation(), a następnie zapisać ten NSData w dowolnym miejscu.

+0

Kenny, dzięki. +1 – erastusnjuki

0

Możesz skorzystać z poniższego kodu, bez użycia 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; 
} 
Powiązane problemy