簡體   English   中英

如何將圖像保存在文檔目錄中並在 Swift 中獲取它

[英]How to save image in document directory and fetch it in Swift

我正在創建一個應用程序來捕獲照片並將其與一些UITextField數據一起保存。

我已經使用核心數據來存儲UITextField數據並且工作正常,但我無法使用核心數據保存圖像。

我已經拍攝了照片並將該照片轉移到下一個視圖控制器進行預覽,然后我需要保存並轉移到主視圖控制器以在UITableViewCell顯示帶有相關UITextField數據的圖片。

UITextField一切正常,可以在UITableViewCell保存和獲取,但無法保存和獲取圖像。

如果您仍在努力弄清楚這里是代碼片段,祝您好運

func saveImageToDocumentDirectory(image: UIImage ) {
    let documentsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
    let fileName = "image001.png" // name of the image to be saved
    let fileURL = documentsDirectory.appendingPathComponent(fileName)
    if let data = UIImageJPEGRepresentation(image, 1.0),!FileManager.default.fileExists(atPath: fileURL.path){
        do {
            try data.write(to: fileURL)
            print("file saved")
        } catch {
            print("error saving file:", error)
        }
    }
}


func loadImageFromDocumentDirectory(nameOfImage : String) -> UIImage {
    let nsDocumentDirectory = FileManager.SearchPathDirectory.documentDirectory
    let nsUserDomainMask = FileManager.SearchPathDomainMask.userDomainMask
    let paths = NSSearchPathForDirectoriesInDomains(nsDocumentDirectory, nsUserDomainMask, true)
    if let dirPath = paths.first{
        let imageURL = URL(fileURLWithPath: dirPath).appendingPathComponent(nameOfImage)
        let image    = UIImage(contentsOfFile: imageURL.path)
        return image!
    }
    return UIImage.init(named: "default.png")!
}
  import UIKit
  class ViewController: UIViewController { 
    @IBOutlet weak var myimageview: UIImageView!

    override func viewDidLoad() {
        super.viewDidLoad()   
        getSaveImage()
    }

func getSaveImage()
{
    let document = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true)
            
            print("Document :\(document)")
            
            let imgurl = document.appendingPathComponent("img1", isDirectory: true)
           
             print("Image Url : \(imgurl.path)")
            
            if !FileManager.default.fileExists(atPath: imgurl.path)
            {
                do{
                    try UIImage(named: "img1")!.jpegData(compressionQuality: 0.75)!.write(to: imgurl)
                    print("image save")
                }
                catch{
                    print("image not save")
                }
            }
            myimageview.image = UIImage(contentsOfFile: imgurl.path)
        }
   } 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM