[英]Show just selected images in gallery using BSImagePicker Swift4
我正在使用'BSImagePicker'。但是我第一次遇到問題我要去畫廊中的select 2張圖片,在選擇2張圖片返回我的viewController之后,我再次去畫廊中的select圖片但我看不到選擇圖片
我想在相冊中看到剛剛選擇的圖片。
這是我的 BSImagePicker 方法
let vc = BSImagePickerViewController()
vc.maxNumberOfSelections = 2
vc.takePhotos = true
bs_presentImagePickerController(vc, animated: true,
select: { (asset: PHAsset) -> Void in
print("Selected: \(asset)")
}, deselect: { (asset: PHAsset) -> Void in
print("Deselected: \(asset)")
}, cancel: { (assets: [PHAsset]) -> Void in
print("Cancel: \(assets)")
}, finish: { (assets: [PHAsset]) -> Void in
print("Finish: \(assets)")
print(assets.count)
for i in 0..<assets.count {
self.SelectedAssets.append(assets[i])
print(self.SelectedAssets)
}
}, completion: nil)
任何幫助
將您的資產提供給此行代碼,它將返回您的圖像。
你的這個方法正在調度中。
print("Finish: \(assets)")
if let imageView = vc.imageView {
PHCachingImageManager.default().requestImage(for: asset, targetSize:imageView.frame.size, contentMode: .aspectFit, options: options) { (result, _) in
imageView.image = result
}
}
var arrSelectedPics : [Any] = []
var SelectedAssets = [PHAsset]()
var PhotoArray: [Data] = []
// for only photo upload
func photoUpload(){
// create an instance
let vc = BSImagePickerViewController()
//display picture gallery
self.bs_presentImagePickerController(vc, animated: true,
select: { (asset: PHAsset) -> Void in
}, deselect: { (asset: PHAsset) -> Void in
// User deselected an assets.
}, cancel: { (assets: [PHAsset]) -> Void in
// User cancelled. And this where the assets currently selected.
}, finish: { (assets: [PHAsset]) -> Void in
// User finished with these assets
for i in 0..<assets.count
{
self.SelectedAssets.append(assets[i])
let resource = PHAssetResource.assetResources(for: assets[i]).first
let name = resource?.originalFilename
let PicsLocalPath = URL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent(name!)
print("----------------PicsLocalPath-------------",PicsLocalPath)
self.arrSelectedPics.append(PicsLocalPath)
}
self.convertAssetToImages()
print("----------------assets-------------",self.arrSelectedPics)}, completion: nil)
}
// convert assets to images
func convertAssetToImages() -> Void {
if SelectedAssets.count != 0{
for i in 0..<SelectedAssets.count{
let manager = PHImageManager.default()
let option = PHImageRequestOptions()
var thumbnail = UIImage()
option.isSynchronous = true
manager.requestImage(for: SelectedAssets[i], targetSize: CGSize(width: 200, height: 200), contentMode: .aspectFill, options: option, resultHandler: {(result, info)->Void in
thumbnail = result!
})
let data = thumbnail.jpegData(compressionQuality: 1)
self.PhotoArray.append(data!)
}
}
//final images array
print("complete photo array \(self.PhotoArray)")
}
更新為 iOS 15 歲及以上
您必須添加照片框架
導入照片
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.