【问题标题】:How do I Save and Load an Image in a UIImageView? [duplicate]如何在 UIImageView 中保存和加载图像? [复制]
【发布时间】:2017-08-12 16:37:32
【问题描述】:

我正在尝试在 xcode 8 swift 3 中创建一个应用程序,其中用户使用 imagePickerController 添加图像,然后当用户单击保存或退出 imagePickerController 我希望将图像保存在本地,所以下次应用程序加载(例如在设备重启后)图像就在那里。只是要清楚,我不想将图像保存到相机胶卷。到目前为止,这是我的代码,没有任何保存或加载方法,(只是保存按钮参考)任何帮助将不胜感激,因为我已经尝试了很长时间。

import UIKit


class timetable: UIViewController, UINavigationControllerDelegate, UIImagePickerControllerDelegate {

@IBOutlet var imageviewtimetable: UIImageView!


@IBAction func save(_ sender: Any) {


}

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view.

}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

@IBAction func selectImageFromPhotoLibrary(_ sender: Any) {

    let imagePickerController = UIImagePickerController()
    imagePickerController.sourceType = .photoLibrary
    imagePickerController.delegate = self
    present(imagePickerController, animated: true, completion: nil)


}



func imagePickerControllerDidCancel(_ picker: UIImagePickerController){
    dismiss(animated: true, completion:nil)
}


func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {

    let selectedImage = info[UIImagePickerControllerOriginalImage] as! UIImage
    imageviewtimetable.image = selectedImage

    dismiss(animated: true,completion:nil)
}





}

【问题讨论】:

标签: ios swift3 uiimageview xcode8


【解决方案1】:

信息:click here

将图像保存在文档目录中

    func saveImageDocumentDirectory() {
        let fileManager = NSFileManager.defaultManager()
        let paths = (getDirectoryPath() as NSString).stringByAppendingPathComponent("apple.jpg")
        let image = UIImage(named: "apple.jpg")
        print(paths)
        let imageData = UIImageJPEGRepresentation(image!, 0.5)
        fileManager.createFileAtPath(paths as String, contents: imageData, attributes: nil)
    }

获取文档目录路径

    func getDirectoryPath() -> String {
        let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
        let documentsDirectory = paths[0]
        return documentsDirectory
    }

从文档目录中获取图片

    func getImage(){
        let fileManager = NSFileManager.defaultManager()
        let imagePath = (self.getDirectoryPath() as NSString).stringByAppendingPathComponent("apple.jpg")
        if fileManager.fileExistsAtPath(imagePath){
            self.imageView.image = UIImage(contentsOfFile: imagePath)
        } else {
            print("No Image")
        }
    }

创建目录

    func createDirectory(){
        let fileManager = NSFileManager.defaultManager()
        let paths = getDirectoryPath() as NSString).stringByAppendingPathComponent("customDirectory")
        if !fileManager.fileExistsAtPath(paths){
            try! fileManager.createDirectoryAtPath(paths, withIntermediateDirectories: true, attributes: nil)
        } else {
            print("Already dictionary created.")
        }
    }

【讨论】:

  • 拒绝从外部 URL 复制粘贴而没有正确归属于创建者。 iosdevcenters.blogspot.com/2016/04/… 请勿在没有归属和版权信息的情况下从第三方网站发布代码。使用评论部分并将 OP 链接到源代码。
  • 没事吧?潜行先生
  • 是的 :) 我支持你。编辑它并输入“取自此来源:”
  • 我相信我遇到的问题是图像不会依赖自身,它给了我线程 1_EXC BREAKPOINT 任何想法?我相信这种方法可能最适合我想要实现的目标
  • 按照用户期望代码在 Swift 3 中的标签进行
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-10-11
  • 1970-01-01
  • 2012-12-27
  • 2015-11-28
  • 2020-10-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多