將圖片儲存在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 );