获取相册图片的几种方式总结

let options = PHImageRequestOptions.init()

options.isNetworkAccessAllowed = true

options.isSynchronous = true

options.deliveryMode = .highQualityFormat
  
    PHImageManager.default().requestImageData(for:phAsset , options: options) { (data, uti, orientation, info) in
        //方式一
        if #available(iOS 9.0, *) {
            let  resource = PHAssetResource.assetResources(for: assets[index] as! PHAsset).first
            //                    DDLOG(message: resource?.value(forKey: "fileSize"))
            let fileSize:CGFloat = resource?.value(forKey: "fileSize") as! CGFloat
            DDLOG(message: "大小1-\(fileSize)b")
        } else {
            // Fallback on earlier versions
        }
        

            //方式二
            let  dict = info as NSDictionary?
            let a = dict![AnyHashable("PHImageFileDataKey")] as! NSData
            DDLOG(message: "大小1-  \(a.length)")
        
           //方式三
            if data != nil{
                self.dataSource.append(ImageModel.init(data: data))
            }
            let d:NSData = NSData.init(data: data!)
            DDLOG(message: "大小3-\(d.length)")
        
          //方式四 拿到图片路径  来获取  大小
        
            let s = Bundle.main.path(forResource: "qwer11", ofType: "jpg")
            let data4:NSData = try! NSData.init(contentsOfFile: s!)
            DDLOG(message: "大小4   \(data4.length)")
 
        
            //以下 2中方式获取到的 data 是 不准确的  所以不能通过下边的 方式判断
            // 注UIImageJPEGRepresentation(image!, 0.6)!  压缩比例0.6 时候大小约等于 正常大小
            let data1:NSData = NSData.init(data: UIImagePNGRepresentation(image)!)
            
            DDLOG(message: "错误1   \(data1.length)")
            
            let data2:NSData = NSData.init(data: UIImageJPEGRepresentation(image!, 0.6)!)
            
            DDLOG(message: "错误2  \(data2.length)")
 
    }

 

转载于:https://my.oschina.net/iceTear/blog/1931902

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值