gpt4 book ai didi

ios - 快速将从用户照片中收集的 UIImage 引用到 Dict 中

转载 作者:行者123 更新时间:2023-11-30 13:27:20 25 4
gpt4 key购买 nike

我在 Storyboard中有一个页面,用户可以在其中更改他们的昵称和用户图标。用户、用户名是预定义的,我将其与 NSUserDefaults 一起使用来存储有关该用户的最少信息;

 UserData['UserID'] = ["Nickname":"Johnny English", "UsersProfile": "abc123"]

我加载一个页面,用户可以在其中修改他们的昵称和个人资料图片,使用UIImagePickerController我可以在用户库中找到图像,然后用新的个人资料替换页面上的库存图像一个。

但我找不到一种方法来引用 iOS 目录中的图像或将图像移动到应用程序内部并以这种方式引用它。

到目前为止我已经:

  func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
if let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage {
UserIconImageView.contentMode = .ScaleAspectFit
UserIconImageView.image = pickedImage
// Add the UsersProfile to the UsersProfile entry for this User
//detailsOfUser["CustomImage"] = pickedImage
// Change the 'Done' button to a 'Save'
self.completeButton.title = "Save"
}
dismissViewControllerAnimated(true, completion: nil)
}

继续这里的最佳方法是什么?引用图像还是将其移动到应用程序内更好?如果是这样怎么办?

 detailsOfUser["CustomImage"] = does a url / referencing string go here?

最佳答案

最近我遇到了类似的问题。我发现的所有答案都说无法获取 UIImagePickerController 选择的该图像的引用,我的解决方案是这样的:

首先,我找到了所选图片的本地文档文件夹路径:

 func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
let docsFileHandler: FileManager = FileManager.init()
let documentDirectoryPath: String = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true).first!

然后,我拍摄了一张选定的照片,其名称带有扩展名:

        let imageFromPicker = info[UIImagePickerControllerOriginalImage]!
var imageID = (info[UIImagePickerControllerReferenceURL] as! NSURL).absoluteString as NSString
let imageExt = (info[UIImagePickerControllerReferenceURL] as! NSURL).lastPathComponent! as NSString

下一步,我从资源库中找到了图片名称。我已经使用了带有 ID 和扩展名的部分,但您可以将其保存为用户名等。我已将图片的新名称添加到文档文件夹路径中。

        let startRangeName = imageID.rangeOfString("id=")
let endRangeName = imageID.rangeOfString("&")

let idRange = NSMakeRange(startRangeName.location + startRangeName.length, endRangeName.location - startRangeName.location - endRangeName.length - startRangeName.length)

imageID = imageID.substringWithRange(idRange)

var writePathForFile = (documentDirectoryPath as NSString).stringByAppendingPathComponent(imageID as String)
writePathForFile.appendContentsOf(imageExt as String)

最后一步是将选定的图片保存到具有创建名称的“文档”文件夹中:

        let imageDataFromPicker = UIImagePNGRepresentation(imageFromPicker as! UIImage)

imageDataFromPicker?.writeToFile(writePathForFile, atomically: true)

此时,您可以将 writePathForFile 用于您的 detailsOfUser["CustomImage"]

关于ios - 快速将从用户照片中收集的 UIImage 引用到 Dict 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37014758/

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