天天看點

IOS:批量導入圖檔和視訊到模拟器的相冊

<a href="http://www.cnblogs.com/smileEvday/archive/2013/04/16/SaveToCameraRoll.html">批量導入圖檔和視訊到模拟器的相冊</a>

  IOS開發中我們經常會用到模拟器調試,模拟器有個主要的好處就是程式啟動塊,最重要的是如果沒有證書的話,我們就隻能在模拟器上調試了。使用模拟器調試時我們可能碰到需要從系統相冊選擇圖檔的情況,特别是做圖檔處理類相關的程式時,更是經常用到。

  初始化情況下模拟器中的相冊中是空的,是以要想選擇,我們就得先導入一些圖檔。通常的做法是将圖檔直接拖拽到模拟器上,然後模拟器就會用safari打開,這個時候我們再長按圖檔就會彈出儲存到系統相冊的菜單了,這樣一個完整的圖檔儲存流程就完成了。但是這中方法有一個明顯的缺點就是效率太低,試想你要做圖檔處理的話肯定得測試各種尺寸,各種比例的圖檔,這樣一個個導入無疑是對程式員的一種摧殘。

  那麼如何才能批量的導入圖檔呢?

  我最開始的時候的想法是找到模拟器存放的目錄,然後定位到照片檔案夾下面,直接把圖檔拷貝進去不就搞定了。于是打開finder尋找到了模拟器的安裝路徑,比如6.1的模拟器的路徑就是: /Users/maple/Library/Application Support/iPhone Simulator/6.1/

  我們使用指令行進入這個目錄,并找到照片檔案夾的路徑: /Users/maple/Library/Application Support/iPhone Simulator/6.1/Media/DCIM,然後将照片拷貝進去。本以為大功告成,結果重新開機了模拟器以後發現系統相冊較之前毫無變化,想一想應該隻因為我們隻把圖檔拷貝進去了,卻沒有更新系統相冊對應的資料庫。如果能在拷貝圖檔的同時,更新系統相冊對應的資料庫,我猜應該就能搞定了,隻是代價比較大,是以隻好放棄。

  隻好換别的方法了,記得以前做上一個項目的時候好像有一個API是可以儲存圖檔到系統相冊的,于是找到這個API: UIImageWriteToSavedPhotosAlbum。想着如果我建一個工程,把要加的圖檔加到工程裡面,然後在程式中通過周遊這些圖檔,一次調用UIImageWriteToSavedPhotosAlbum這個方法,是以的圖檔不就全部導入到系統相冊了嗎?

  說做就做,先寫了一個簡單的函數試了一下,的确可以達到目的,然後繼續完善思路,添加了監測拷貝進度的功能,做了一個簡單的進度界面。

  關鍵的儲存圖檔的函數片段如下:

  忽略界面更新回調相關的邏輯,程式的主要流程如下:

  1)找到目前程式包中所有的圖檔檔案,注意這塊兒要排除掉工程自帶的圖檔如Default.png等;

  2)對找到的所有圖檔檔案調用儲存到系統相冊的函數。

  經過測試本程式可以實作批量導入圖檔到系統相冊的功能,于是想着更進一步視訊是否也可以批量導入呢?經過查找發現也有一個API:  UISaveVideoAtPathToSavedPhotosAlbum,然後順便添加了批量導入視訊的功能,經過測試可以正常導入。

  

注:轉載請注明出處!歡迎大家加我QQ 1592232964,一起讨論共同進步。

部門招人: 進階iOS、Android、前端開發,有意私聊,部落客請你喝️

如果覺得本文幫到了你,記得點贊哦,當然也可以請部落客喝一杯豆漿

微信二維碼

QQ二維碼

繼續閱讀