gpt4 book ai didi

ios - 如何使用 writeToFile 将图像保存到文档目录中?

转载 作者:行者123 更新时间:2023-11-29 05:54:13 28 4
gpt4 key购买 nike

// directoryPath is a URL from another VC
@IBAction func saveButtonTapped(sender: AnyObject) {
let directoryPath = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0] as NSURL
let urlString : NSURL = directoryPath.URLByAppendingPathComponent("Image1.png")
print("Image path : \(urlString)")
if !NSFileManager.defaultManager().fileExistsAtPath(directoryPath.absoluteString) {
UIImageJPEGRepresentation(self.image, 1.0)!.writeToFile(urlString.absoluteString, atomically: true)
displayImageAdded.text = "Image Added Successfully"
} else {
displayImageAdded.text = "Image Not Added"
print("image \(image))")
}
}

我没有收到任何错误,但图像没有保存在文档中。

最佳答案

问题在于您正在检查文件夹是否不存在,但您应该检查文件是否存在。代码中的另一个问题是您需要使用 url.path 而不是 url.absoluteString。您还可以使用“png”文件扩展名保存 jpeg 图像。您应该使用“jpg”。

编辑/更新:

Swift 4.2 或更高版本

do {
// get the documents directory url
let documentsDirectory = try FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false)
print("documentsDirectory:", documentsDirectory.path)
// choose a name for your image
let fileName = "image.jpg"
// create the destination file url to save your image
let fileURL = documentsDirectory.appendingPathComponent(fileName)
// get your UIImage jpeg data representation and check if the destination file url already exists
if let data = image.jpegData(compressionQuality: 1),
!FileManager.default.fileExists(atPath: fileURL.path) {
// writes the image data to disk
try data.write(to: fileURL)
print("file saved")
}
} catch {
print("error:", error)
}

要在目的地写入图像,无论图像是否已存在,您都可以使用.atomic选项,如果您想避免覆盖现有图像,您可以使用withoutOverwriting 改为:

try data.write(to: fileURL, options: [.atomic])

关于ios - 如何使用 writeToFile 将图像保存到文档目录中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55322333/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com