保存图片到本地 (Swift 4)

/*****************************保存图片*************************************/
//MARK: 将图片保存在相册
///保存图片 --> UIImageWriteToSavedPhotosAlbum
func saveImageToAlbum(image:UIImage) {
    print("图片--->\(image)")
    UIImageWriteToSavedPhotosAlbum(image, self, #selector(image(image:didFinishSavingWithError:contextInfo:)), nil)
}
@objc func image(image: UIImage, didFinishSavingWithError error: NSError?, contextInfo:UnsafeRawPointer) {
    if let e = error as NSError? {
        print(e)
    } else {
        MessateAlert.Use(titleStr: "保存成功")
    }
}

//MARK: Photos框架保存照片
///保存照片--> 建议使用 <Photos框架保存照片>
func saveImage(image: UIImage) {
    PHPhotoLibrary.shared().performChanges({
        PHAssetChangeRequest.creationRequestForAsset(from: image)
    }) { (isSuccess, error) in
        print("\(isSuccess)----\(String(describing: error))")
        if isSuccess {
            MessateAlert.Use(titleStr: "保存成功")
        } else {
            print("error---->\(String(describing: error))")
            MessateAlert.Use(titleStr: "系统问题,保存失败")
        }
    }
}


///保存图片,并从相册获取保存的照片
func savePhotoAndGetphoto() {
    var localID: String!//标识符
    PHPhotoLibrary.shared().performChanges({
        let result = PHAssetChangeRequest.creationRequestForAsset(from: UIImage())
        let assetPlaceholder = result.placeholderForCreatedAsset
        //保存标识符
        localID = assetPlaceholder?.localIdentifier
    }) { (succ, error) in
        if succ {
            print("保存成功")
            //通过标识符获取对应的资源
            let assetResult = PHAsset.fetchAssets(withLocalIdentifiers: [localID], options: nil)
            let asset = assetResult[0]
            let options = PHContentEditingInputRequestOptions()
            options.canHandleAdjustmentData = {(adjustmeta: PHAdjustmentData) -> Bool in
                return true
            }
            //获取保存的图片路径
            asset.requestContentEditingInput(with: options, completionHandler: { (contentEditingInput: PHContentEditingInput?, info: [AnyHashable : Any]) in
                let file = contentEditingInput!.fullSizeImageURL!
                print("地址:\(file)")
            })
            
            //获取保存的原图
            PHImageManager.default().requestImage(for: asset, targetSize: PHImageManagerMaximumSize, contentMode: PHImageContentMode.aspectFit, options: nil, resultHandler: { (image, handle: [AnyHashable : Any]?) in
                print("获取原图成功:\(String(describing: image))")
            })
            
            //获取保存的缩略图
            PHImageManager.default().requestImage(for: asset, targetSize: CGSize.init(width: 100, height: 100), contentMode: PHImageContentMode.aspectFit, options: nil, resultHandler: { (image, handle: [AnyHashable : Any]?) in
                print("获取缩略图成功:\(String(describing: image))")
            })
        } else {
            print("保存失败-->\(error!.localizedDescription)")
        }
    }
}

/******************************************************************/

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值