1. 程式人生 > >將圖片儲存在iPhone的相簿中

將圖片儲存在iPhone的相簿中

 

有時候你的應用需要將應用中的圖片儲存到使用者iPhone或者iTouch的相簿中。 可以使用UIKit的這個類方法來完成。

void UIImageWriteToSavedPhotosAlbum ( 
   UIImage  *image, 
   id       completionTarget, 
   SEL      completionSelector, 
   void     *contextInfo 
); 
void UIImageWriteToSavedPhotosAlbum (   UIImage  *image,   id       completionTarget,   SEL      completionSelector,   void     *contextInfo);
 
image

要儲存到使用者裝置中的圖片

completionTarget

當儲存完成後,回撥方法所在的物件

completionSelector

當儲存完成後,所呼叫的回撥方法。 形式如下:

- ( void ) image: ( UIImage *) image
    didFinishSavingWithError: ( NSError *) error
    contextInfo: ( void *) contextInfo;
 
contextInfo

可選的引數,儲存了一個指向context資料的指標,它將傳遞給回撥方法。

比如你可以這樣來寫一個存貯照片的方法:

// 要儲存的圖片
  UIImage *img = [ UIImage imageNamed:@"ImageName.png" ] ;  
 
  // 儲存圖片到相簿中
  UIImageWriteToSavedPhotosAlbum( img, self, @selector ( image:didFinishSavingWithError:contextInfo:) , nil ) ;
 
回撥方法看起來可能是這樣:

view plaincopy to clipboardprint?

- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error 

             contextInfo:(void *)contextInfo 

  { 

    // Was there an error?  

    if (error != NULL) 

    { 

     // Show error message…  

    } 

    else  // No errors  

    { 

    // Show message image successfully saved  

   } 

  } 

- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error            
contextInfo:(void *)contextInfo  {   
// Was there an error?   
if (error != NULL)    {   
  // Show error message…   
   }    else  // No errors    {  
      // Show message image successfully saved  
 } 
}


儲存當前檢視:

#import  <QuartzCore/QuartzCore.h>

UIGraphicsBeginImageContext(currentView.bounds .size ); //currentView 當前的 view

[currentView. layer  renderInContext: UIGraphicsGetCurrentContext()];

UIImage *viewImage =  UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

UIImageWriteToSavedPhotosAlbum(viewImage, nil , nil , nil );