Swift 3.0 将图像写入目录

Posted

技术标签:

【中文标题】Swift 3.0 将图像写入目录【英文标题】:Swift 3.0 writing Image to Directory 【发布时间】:2016-10-06 12:38:08 【问题描述】:

我有一个简单的ImagePicker 供用户选择或拍摄个人资料照片。我想将这个image 保存到Home Directory 以便以后加载。

问题在于未设置图像类型。

    //Save Image
    _ = PPimagePicked.image
    let imageData = UIImageJPEGRepresentation(PPimagePicked.image!, 0.6)
    let compressedJPGImage = UIImage(data: imageData!)
    UIImageWriteToSavedPhotosAlbum(compressedJPGImage!, nil, nil, nil)
    // Get Document Root Path
    let path = URL(fileURLWithPath: NSHomeDirectory()).appendingPathComponent("Documents/profile.jpg")
    do 
        //Save image to Root
        try imageData?.write(to: path, options:  .atomic)
        print("Saved To Root")
     catch let error 
        print(error)
    

确切的错误是:

"[Generic] 创建未知类型的图像格式是错误的"

【问题讨论】:

【参考方案1】:

请尝试此代码,我在 swift 2.2 中使用它。下面的方法包括 UIImageJPEGRepresentation、UIImagePNGRepresentation

if let image = UIImage(named: "example.png") 
    if let data = UIImageJPEGRepresentation(image, 0.8) 
        let filename = getDocumentsDirectory().appendingPathComponent("copy.png")
        try? data.write(to: filename)
    


func getDocumentsDirectory() -> URL 
    let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
    let documentsDirectory = paths[0]
    return documentsDirectory


if let image = UIImage(named: "example.png") 
    if let data = UIImagePNGRepresentation(image) 
        let filename = getDocumentsDirectory().appendingPathComponent("copy.png")
        try? data.write(to: filename)
    

【讨论】:

UIImage 的值没有成员'write' @user1514436 'write' 方法可用于 NSData 而不是 UIImage,您可能正在 UIImage 上使用 write 函数 它不会让我在 UIImage 上使用它。我认为我的代码中缺少其他内容...【参考方案2】:

尝试将图像转换为图像数据

       let imageCapture = UIImage(data: dataImage)!
        UIImageWriteToSavedPhotosAlbum((image: imageCapture), nil, nil, nil)

【讨论】:

以上是关于Swift 3.0 将图像写入目录的主要内容,如果未能解决你的问题,请参考以下文章

解析加载图像 Swift 3.0

如何将图像写入文件?

Stack View 导致 Swift 3.0 中带有图像的按钮离开屏幕

来自照片库 swift 3.0 的风景图像

JSON图像解析IOS Swift 3.0

如何使用 Swift 3.0 播放附加到图像数组的声音?