iT邦幫忙

2023 iThome 鐵人賽

DAY 22
0

說明

  • 怕讀者不知道我在幹嘛,就編排上來說,這是相片處理五部曲之三 (請見後方備註)

程式碼

程式概念

  • 讀取沙盒路徑
  • 判斷檔案是否存在
func documentDir() -> String {
    let dir = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)
    return dir[0] as String
}

func loadStampImageByName(fishname: String) -> UIImage {
    let manager = FileManager()
    let docDir = self.documentDir()
    let filePath = docDir.appendingFormat("/saved/\(fishname).png")
    //let filePath = docDir.appendingPathComponent("/saved/pics/\(fishname).png")
    //let fileUrl = NSURL(fileURLWithPath: filePath).absoluteString!
    //let path = fileUrl.replacingOccurrences(of: "file://", with: "")
    //print(path)

    if manager.fileExists(atPath: filePath) {
        let img = UIImage(contentsOfFile: filePath)
        print("load 1: \(filePath)")
        return img!
    } else {
        print("load 2")
        var hola = manager.urls(for: .documentDirectory, in: .userDomainMask)[0].path
        hola = hola.appendingPathComponent("saved")
        let yale = try? manager.contentsOfDirectory(atPath:hola)
        print(yale)
        return UIImage()
    }
}
  • 程式碼持續修改中 ...

備註

  • 使用 Assets
    1. 寫:製作程式時,放入 Assets.xcassets (只能在製作程式的時候放進去,程式不能寫資料進來)
    2. 讀:直接由 Image("圖檔名字") 取用
  • 相片五部曲
    1. 拍照或讀取照相簿 ImagePickerUIImage
    2. UIImage離線 PNG 檔案
    3. 離線 PNG 檔案Image
    4. 離線 PNG 檔案S3
    5. S3離線 PNG 檔案

上一篇
【Day 21】 相片五部曲之二: UIImage 至離線 PNG 檔案
下一篇
【Day 23】 相片五部曲之四:從離線 PNG 檔案至 S3
系列文
依然無法成為釣魚大師也要努力摸魚!!辣個吃魚神器 APP 第二彈33
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言