ios - 如何在 UIImageView 中保存和加载图像?

标签 ios swift3 uiimageview xcode8

<分区>

我正在尝试在 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)
}





}

最佳答案

信息: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.")
        }
    }

关于ios - 如何在 UIImageView 中保存和加载图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42919891/

上一篇:ios - 无法使用 Gradle 创建构建

下一篇:ios - 我的 View 后面的按钮? iOS

相关文章:

ios - 是否可以弹出 UINavigationController 两次?

ios - 如何将更多参数传递给 UIAlertAction 的处理程序?

ios - 我的通知代码有什么问题?

ios - 来自 UICollectionViewCell 中的 Class 对象的 UITableView 数据源

ios - ImageView 仅在启动屏幕中显示背景颜色

ios - 将可解码结构存储到 Userdefaults

ios - 未在 UICollectionViewCell 中的 UILabel(或 UITextField)中设置文本

ios - 如何从单一 View 转到 spritekit

iPhone UIImageView 动画问题

objective-c - 在 View 上显示图像 1 秒