用新图像替换图像文件

时间:2017-03-17 11:11:08

标签: ios swift

有没有办法替换目录中存在的现有图像文件的图像?

在一个方法中,我从应用程序的目录中检索我称之为“默认”的图像。现在,该应用程序允许用户使用自定义相机拍摄图像,我希望能够使用相同的检索方法(使用默认文件名),但使用相机拍摄的新图像。

有什么想法吗?

谢谢!

更新

@IBAction func show(_ sender: Any) {
    image.image = UIImage(named: "image.jpg")

}

@IBAction func saveImages(_ sender: Any) {
    self.saveImageDocumentDirectory()

}

func saveImageDocumentDirectory() {

    let fileManager = FileManager.default
    let paths = (NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as NSString).appendingPathComponent("image.jpg")
    let image = UIImage(named: "image.jpg")
    print(paths)
    let imageData = UIImageJPEGRepresentation(image!, 0.5)
    fileManager.createFile(atPath: paths as String, contents: imageData, attributes: nil)
}

但是,我不知道如何检索它(如果这是将图像保存到现有文件的正确方法)。

2 个答案:

答案 0 :(得分:0)

func saveImageDocumentDirectory(){

    let fileManager = FileManager.default
    let paths = (NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as NSString).appendingPathComponent("image.png")
    let image = UIImage(named: "image.png")
    print(paths)
    let imageData = UIImageJPEGRepresentation(image!, 0.5)
    fileManager.createFile(atPath: paths as String, contents: imageData, attributes: nil)
}

答案 1 :(得分:0)

您可以在swift 4上使用此代码,它在覆盖文件时有效:)

let fileManager = FileManager.default 
let path = URL(string: "your file path here")
do {
    let image = UIImage(named: "sampleImage")
    if let imageData = image?.jpegData(compressionQuality: 0.5) {
        try imageData.write(to: path, options: Data.WritingOptions.atomic)
    }
} catch {
    //handle error here
}