(iPhone)怎样从photo album中获取所有图片 “****ONE*****” ---》 怎样从CGImage 转换成 NSData?...
时间: 2024-02-03 20:01:56 浏览: 31
可以使用 Photos 框架来获取相册中的所有图片,代码示例:
```swift
import Photos
let fetchOptions = PHFetchOptions()
fetchOptions.predicate = NSPredicate(format: "title = %@", "***ONE***")
let collection = PHAssetCollection.fetchAssetCollections(with: .album, subtype: .any, options: fetchOptions)
if let album = collection.firstObject {
let assets = PHAsset.fetchAssets(in: album, options: nil)
for index in 0..<assets.count {
let asset = assets[index]
PHImageManager.default().requestImageData(for: asset, options: nil) { (data, _, _, _) in
if let imageData = data {
// 将 imageData 转换成 CGImage
if let image = UIImage(data: imageData)?.cgImage {
// 将 CGImage 转换成 NSData
let data = NSMutableData()
let dest = CGImageDestinationCreateWithData(data, kUTTypeJPEG, 1, nil)!
CGImageDestinationAddImage(dest, image, nil)
CGImageDestinationFinalize(dest)
// 使用转换后的 NSData 进行处理
}
}
}
}
}
```
这里使用了 `PHAssetCollection.fetchAssetCollections` 方法来获取指定名称为 "***ONE***" 的相册,然后使用 `PHAsset.fetchAssets` 方法来获取相册中的所有照片,最后使用 `PHImageManager.default().requestImageData` 方法来获取每张照片的数据。在获取到数据之后,可以使用 `UIImage(data:)` 方法将数据转换成 UIImage,然后使用 `UIImage.cgImage` 属性将 UIImage 转换成 CGImage。最后可以使用 `CGImageDestinationCreateWithData` 方法将 CGImage 转换成 NSData。
需要注意的是,这里使用的是 JPEG 格式,如果需要使用其他格式,可以修改 `kUTTypeJPEG` 参数。