您的位置:首页 > 移动开发 > Swift

iOS swift实现图片不重复保存至相册

2017-04-24 14:20 1061 查看
获取到相册中的所有图片,分别与要保存的图片进行对比

(对比两张图片是否相同方法可查看swift 判断/比较两张图片是否相同).

/// 相册中是否已存在图片
///
/// - Returns: 是否存在图片的状态布尔值
func isExistInPhotoAlbum() -> Bool {
var imageIsEqual = false
let allPhotosOptions = PHFetchOptions()
allPhotosOptions.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: true)] //按创建日期排序
let allPhotos = PHAsset.fetchAssets(with: allPhotosOptions) //获取所有照片

//对所有照片进行遍历
allPhotos.enumerateObjects({ (asset, index, stop) in
let imageManager = PHImageManager.default()
let options = PHImageRequestOptions()
options.isSynchronous = true
//将照片的元数据转换成UIImage对象
imageManager.requestImage(for: asset, targetSize: CGSize(width: self.imageView.bounds.size.width, height: self.imageView.bounds.size.height), contentMode: .default, options: options, resultHandler: { (image, _: [AnyHashable : Any]?) in
//对比两张图片是否相同
let result = self.isEqualImage(imageOne: image!, imageTwo: self.imageView.image!)
if result {
imageIsEqual = true
stop.pointee = true
}
})
})
return imageIsEqual
}


保存图片至相册

/// 保存图片
func savePhoto() {
let isEqual = self.isExistInPhotoAlbum()
if isEqual {
print("相册中已存在这张图片")
} else {
PHPhotoLibrary.shared().performChanges({
let _ = PHAssetChangeRequest.creationRequestForAsset(from: self.imageView.image!)
}) { (success, error) in
if success {
print("save success")
} else {
print("save fail")
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: