美文网首页工作生活
Swift开发---UIImage和路径互相转化

Swift开发---UIImage和路径互相转化

作者: 闲云悠鹤蝶恋舞 | 来源:发表于2019-07-03 15:09 被阅读0次
    1、获取沙盒路径的方法:
    方法一:
    let path = NSHomeDirectory() + "/Documents/test.png"
    
    方法二:
    let path = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first! + "/test.png"
    
    2、将UIImage转化为图片路径(即将图片存储到指定的路径中):
    // 将图片写入到指定的路径中
    // "/var/mobile/Containers/Data/Application/FD6546AA-2DFC-4003-BFF0-0B302630A789/Documents/test.png"
    let path = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first! + "/test.png"
    do {
        try img?.pngData()?.write(to: URL(fileURLWithPath: path))
    }catch {
                
    }
    
    3、根据图片路径来获取图片:
    // 根据指定的路径,来读取图片
    // path:"/var/mobile/Containers/Data/Application/FD6546AA-2DFC-4003-BFF0-0B302630A789/Documents/test.png"
    // 注:切记此处不能直接用保存的路径,因为NSHomeDirectory()每次运行App,得到的都是不一样的!!!
    let path = NSHomeDirectory() + "/Documents/test.png"
    let getImg = UIImage(contentsOfFile: path)
    

    注意:

    需要注意的是documents这个路径随着app的每次Run而改变,所以我们不能将这个绝对路径和后面自定义的相对路径拼接存放到NSUserDefaults中已方便后面的存取,我们应该将自定义的相对路径保存到NSUserDefaults中,需要获取这个路径下的文件时,使用上面方法一或方法二获取到documents,再与保存好的相对路径进行拼接来完成自己需要的功能。
    如:NSHomeDirectory() + "/Documents/test.png",这样就可以解决每次路径都发生变化取不到对应值的问题了!!!

    相关文章

      网友评论

        本文标题:Swift开发---UIImage和路径互相转化

        本文链接:https://www.haomeiwen.com/subject/bjnqhctx.html