en

hi, it seems you are using microsoft internet explorer. it doesn't match web standard and causes problems browsing this site. please please please use mozilla firefox or google chrome instead. thank you!

zh

哦哦!您正在使用Internet Explorer 瀏覽器,它與我們的網頁標準並不相容,可能會導致畫面顯示不正常。
請改用 Mozilla Firefox 或者 Google Chrome 才能正常瀏覽本網站,謝謝!

12.05.2011

將影像存至相簿 Album 的方法

 

這裡示範如何將 UIImage 存入相簿 Album 中,方法其實很簡單,如上圖所示我們將程式碼撰寫在程式進入點,當 View 被開啟時就把中間的影像存至相簿,右圖就是在圖庫中瀏覽所存入的影像,其程式碼如下。

UIImageWriteToSavedPhotosAlbum(imageView.image, nil, nil, nil);
一般來說後面的三個參數直接帶入 nil 即可,除非有特殊需求,例如在儲存影像之後需要改變 Focus,或是觸發函式等。

如果你希望在儲存影像之後可以跳出一個警告視窗 UIAlertView 確認是否有正確儲存影像,可以參考以下做法新增一個函式來幫助判斷儲存影像時是否產生錯誤,並且彈出警告視窗加以提示。

//自行建立判斷儲存成功與否的函式
- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo {

    UIAlertView *alert;

    //以error參數判斷是否成功儲存影像
    if (error) {
        alert = [[UIAlertView alloc] initWithTitle:@"錯誤"
                                           message:[error description]
                                          delegate:self
                                 cancelButtonTitle:@"確定"
                                 otherButtonTitles:nil];
    } else {
        alert = [[UIAlertView alloc] initWithTitle:@"成功"
                                           message:@"影像已存入相簿中"
                                          delegate:self
                                 cancelButtonTitle:@"確定"
                                 otherButtonTitles:nil];
}

//顯示警告訊息
[alert show];
}

之後我們在儲存影像時只要呼叫此參數即可。

UIImageWriteToSavedPhotosAlbum(imageView.image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
關於警告訊息 UIAlertView 的更多資訊可以參考Alerts 警告訊息的使用方法ㄧ文。
關於從圖庫中取得影像的方法可以參考從相簿圖庫中取得影像的方法ㄧ文。






6 則留言:

  1. 感謝,受教了:)

    回覆刪除
    回覆
    1. 您好 cg2010studio

      您太客氣了!

      刪除
  2. 您好

    我想請問一下

    有沒有方法可以去判斷現在這張圖是否已經存入相簿嗎?

    就是讓這張圖不要重複

    回覆刪除
    回覆
    1. 您好:

      如果沒辦法在你自己程式裡判斷的話,你就只能將所有檔案挖出來用檔案名稱判斷是否重複(雖然這也不是很保險就是了)。

      詳細的方法我並沒有實作過,不過你可以試試看 ALAssetsLibrary 來取得檔案並判斷名稱。

      刪除
    2. 刚好看到这里。感慨的是博主几乎只要有问题都有很认真的回答。

      刪除
    3. yinhan 您好:

      只是互相討論、切磋而已,也歡迎您給我們一些指教!

      刪除