检查图像大小时出现内存问题

时间:2017-06-19 13:45:04

标签: ios swift

我正在尝试通过UIImagePicker获取图像的大小

这是代码:

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {

    let image = info[UIImagePickerControllerOriginalImage] as! UIImage 
    var imgData: NSData = NSData(data: UIImageJPEGRepresentation((image), 1)!)
    var imageSize: Int = imgData.length
    print("size of image in KB: %f ", Double(imageSize) / 1024.0)
}

这会引发错误:

  

来自调试器的消息:由于内存问题而终止。

注意:磁盘上的映像文件大小约为75 MB。它适用于较小尺寸的图像。

1 个答案:

答案 0 :(得分:0)

您可以使用FileManager检查文件大小(和其他属性)。要获取所选图像的URL,请使用UIImagePickerControllerOriginalImage键。它为您提供文件的URL,您可以将其传递给FileManager,如下所示:

if let imgURL : URL = info[UIImagePickerControllerOriginalImage] as? URL,
let attribs = try? FileManager.default.attributesOfItem(atPath: imgURL.path) {
    let size = attribs[FileAttributeKey.size]
    print(size)
}