获取到相册中的所有图片,分别与要保存的图片进行对比
(对比两张图片是否相同方法可查看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")
}
}
}
}

本文介绍如何使用Swift在iOS应用中检查相册中是否已存在特定图片,并实现将新图片保存到相册的功能。文章详细展示了遍历相册图片、比较图片相似度的方法,并提供了保存图片到相册的具体实现。
4877

被折叠的 条评论
为什么被折叠?



