iOS Swift Photos框架 修改相冊(cè)照片 創(chuàng)建時(shí)間 定位 設(shè)置文件名稱

本文介紹如何使用Photos框架修改相冊(cè)中的照片信息

修改照片創(chuàng)建時(shí)間

最近項(xiàng)目在做相冊(cè)常柄,網(wǎng)上找了很久的資料發(fā)現(xiàn)關(guān)于修改相冊(cè)中照片的文章大多都還是使用的AssetsLibrary,但是AssetsLibrary中很多方法都已經(jīng)棄用了存皂,苦尋無果就只能自己看官方文檔了最后找到了PHAssetChangeRequest,注釋如下:

  PHAssetChangeRequest 
  A request to create, delete, change metadata for, or edit the content of a Photos asset, for use in a photo library change block.

使用方法很簡(jiǎn)單寻拂,跟其他修改操作一樣需要寫在performChanges函數(shù)里面

  PHPhotoLibrary.shared().performChanges({
        //asset是PHAsset 想要修改的照片
        let request = PHAssetChangeRequest(for: asset)
        //設(shè)置創(chuàng)建時(shí)間
        request.creationDate = Date()
    }) { (success, error) in
        if success == true {
            print("修改成功")
        }
    }

也可以使用其他創(chuàng)建方式程奠,具體使用可以自己試試

open class func creationRequestForAsset(from image: UIImage) -> Self

open class func creationRequestForAssetFromImage(atFileURL fileURL: URL) -> Self?

open class func creationRequestForAssetFromVideo(atFileURL fileURL: URL) -> Self?

修改其他屬性

還有其他幾個(gè)常用屬性可以修改,使用方法都跟創(chuàng)建時(shí)間一致祭钉,在performChanges里面寫就好了

open var creationDate: Date? //創(chuàng)建時(shí)間

open var location: CLLocation? //定位

open var isFavorite: Bool //是否收藏(喜歡)


open var isHidden: Bool  //是否隱藏

設(shè)置文件名稱

這里是指保存圖片到相冊(cè)時(shí)設(shè)置文件名稱瞄沙,關(guān)于直接修改相冊(cè)中的文件名稱的方法,還沒有找到慌核,目前也沒有這個(gè)需求就沒有去找了距境,有需求的小伙伴可以自己去看看官方文檔。關(guān)于相冊(cè)中的文件名稱垮卓,iOS系統(tǒng)會(huì)自動(dòng)為每一個(gè)文件命一個(gè)名垫桂,該文件還存在一個(gè)originalFilename也就是原件名,originalFilename是當(dāng)你分享或者傳輸給其他設(shè)備時(shí)的名稱粟按,如果沒有設(shè)置originalFilename就會(huì)使用系統(tǒng)默認(rèn)的命名 樣式是這樣的“IMG_3088.JPG” 默認(rèn)會(huì)從IMG_0001.JPG開始新增并一直累加诬滩,因此兩個(gè)手機(jī)中的文件名基本都是一樣的。

獲取本地照片的名稱及URL

    let assets = PHAsset.fetchAssets(with: nil)//獲取相冊(cè)中的所有文件
    let asset = assets.firstObject
    let assetName = asset?.value(forKey: "filename") as? String //系統(tǒng)命名
    let resource = PHAssetResource.assetResources(for: asset!)
    let originalName = resource.first?.originalFilename //原件名
    let assetURL = resource.first?.value(forKey: "fileURL") as? URL //相冊(cè)文件對(duì)應(yīng)的URL

這里再介紹一下PHAssetResource灭将,我們可以通過PHAssetResource獲取asset的Resource疼鸟,當(dāng)然resource可能是一個(gè)也可能是多個(gè),Livephoto一般會(huì)有兩個(gè)宗侦,其中一個(gè)會(huì)是.mov文件愚臀,從這里也可以看出Livephoto基本就是通過視頻來展示的,想要播放Livephoto也可以嘗試一下使用這個(gè).mov文件播放矾利。當(dāng)然這個(gè)并不是重點(diǎn)姑裂,重點(diǎn)是多個(gè)resource時(shí)應(yīng)該取哪一個(gè)? PHAssetResource里有一個(gè)Type屬性男旗,對(duì)應(yīng)照片舶斧、視頻、音頻還有其他雜七雜八的type察皇,我們需要的僅僅是前兩個(gè)茴厉,通過PHAssetResource的Type與PHAsset的mediaType對(duì)比,只要rawValue是相等的就是我們需要的PHAssetResource什荣。

  let resources = PHAssetResource.assetResources(for: asset)
  var originalName: String?
  for item in resources {
    if item.type.rawValue == asset.mediaType.rawValue {
      originalName = item.originalFilename
      break
     }
  }

設(shè)置originalFilename

  PHPhotoLibrary.shared().performChanges({
        let request = PHAssetCreationRequest.forAsset()
        let option = PHAssetResourceCreationOptions()
        option.originalFilename = "test.png" //設(shè)置文件名稱
        request.addResource(with: .photo, fileURL: URL(fileURLWithPath: "test.png"), options: option) //保存對(duì)應(yīng)圖片到相冊(cè)
    }) { (success, error) in
        if success == true {
            print("保存相冊(cè)成功")
        }
    }

最后矾缓,以上操作都需要先請(qǐng)求相冊(cè)讀寫權(quán)限,這里就不多說了

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末稻爬,一起剝皮案震驚了整個(gè)濱河市嗜闻,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌桅锄,老刑警劉巖琉雳,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件样眠,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡翠肘,警方通過查閱死者的電腦和手機(jī)檐束,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來束倍,“玉大人被丧,你說我怎么就攤上這事〖∮模” “怎么了晚碾?”我有些...
    開封第一講書人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)喂急。 經(jīng)常有香客問我,道長(zhǎng)笛求,這世上最難降的妖魔是什么廊移? 我笑而不...
    開封第一講書人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮探入,結(jié)果婚禮上狡孔,老公的妹妹穿的比我還像新娘。我一直安慰自己蜂嗽,他們只是感情好苗膝,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著植旧,像睡著了一般辱揭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上病附,一...
    開封第一講書人閱讀 49,031評(píng)論 1 285
  • 那天问窃,我揣著相機(jī)與錄音,去河邊找鬼完沪。 笑死域庇,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的覆积。 我是一名探鬼主播听皿,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼宽档!你這毒婦竟也來了尉姨?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤雌贱,失蹤者是張志新(化名)和其女友劉穎啊送,沒想到半個(gè)月后偿短,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡馋没,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年昔逗,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片篷朵。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡勾怒,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出声旺,到底是詐尸還是另有隱情笔链,我是刑警寧澤,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布腮猖,位于F島的核電站鉴扫,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏澈缺。R本人自食惡果不足惜坪创,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望姐赡。 院中可真熱鬧莱预,春花似錦、人聲如沸项滑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽枪狂。三九已至危喉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間摘完,已是汗流浹背姥饰。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留孝治,地道東北人列粪。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像谈飒,于是被迫代替她去往敵國(guó)和親岂座。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理杭措,服務(wù)發(fā)現(xiàn)费什,斷路器,智...
    卡卡羅2017閱讀 134,599評(píng)論 18 139
  • 在微博上出現(xiàn)了越來越多的被標(biāo)記為 Live 的圖片手素,這種圖片是一種動(dòng)圖 LivePhoto鸳址,長(zhǎng)按之后會(huì)進(jìn)行播放瘩蚪。那...
    wvqusrtg閱讀 4,823評(píng)論 0 9
  • 這是大女兒的第三幅工筆畫作品-多二喬牡丹扇面圖疹瘦。完成于2017年7月2日。當(dāng)時(shí)大女兒7歲9個(gè)月巡球。由工筆畫老師指導(dǎo)完成言沐。
    盼好運(yùn)閱讀 1,363評(píng)論 7 7
  • 007之路第一篇,給自己打call酣栈,給同行的戰(zhàn)友們打call险胰。既然知道在做的這件事是好的,是對(duì)的矿筝,那就堅(jiān)持下...
    多拉小A閱讀 614評(píng)論 2 0
  • 一直想寫篇文章來闡述我的抑郁癥痊愈史起便,以及我想告訴諸位患者的是,抑郁癥可以治好跋涣,可以讓你像以前一樣陽光快樂缨睡。之所以...
    林溪?jiǎng)t閱讀 33,631評(píng)論 29 33