मैं एक समय में एकाधिक छवियों का चयन करने के लिए QBImagePickerController का उपयोग कर रहा हूं।

तो, यहाँ मेरा पूरा कोड है

मैं इस कोड के साथ imagepickerController प्रस्तुत कर रहा हूं

let imagePickerController = QBImagePickerController()
imagePickerController.delegate = self
imagePickerController.allowsMultipleSelection = true
imagePickerController.mediaType = .Image
self.presentViewController(imagePickerController, animated: 
true, completion: nil)

इसलिए जब मैं कई छवियों को चुनता हूं और किया हुआ क्लिक करता हूं, तो इस विधि को कहा जाता है

func qb_imagePickerController(imagePickerController: QBImagePickerController!, didFinishPickingAssets assets: [AnyObject]!) {
        for asset in assets {
            print(asset.fileName)   
        }
        self.dismissViewControllerAnimated(true, completion: nil)
    }

उदाहरण के लिए, मैं एक छवि का चयन करता हूं, फिर वह इस तरह प्रिंट करता है

<PHAsset: 0x7fc55d954500> 6006CE57-81FE-4DC0-8C52-5DB43CE7638D/L0/001 mediaType=1/0, sourceType=1, (1920x1080), creationDate=2016-05-26 09:15:34 +0000, location=0, hidden=0, favorite=0 

इससे मैं छवि कैसे प्राप्त कर सकता हूं और इसे संग्रहदृश्य में कैसे सेट कर सकता हूं?

मुझे इससे फ़ाइल नाम मिलता है लेकिन यह इससे छवि सेट करने के योग्य नहीं है।

मैं filePathURL, fileURL, absulurl का उपयोग करता हूं लेकिन कुछ भी नहीं हुआ यह दुर्घटनाग्रस्त हो गया

तो कृपया इसमें मेरी मदद करें
धन्यवाद

6
Jitendra Modi 27 पद 2016, 09:15

2 जवाब

सबसे बढ़िया उत्तर

UIImage प्राप्त करने के लिए आपको requestImageForAsset का उपयोग करना होगा। आप इस तरह की छवि प्राप्त कर सकते हैं

func qb_imagePickerController(imagePickerController: QBImagePickerController!, didFinishPickingAssets assets: [AnyObject]!) {


    let requestOptions = PHImageRequestOptions()
    requestOptions.resizeMode = PHImageRequestOptionsResizeMode.Exact
    requestOptions.deliveryMode = PHImageRequestOptionsDeliveryMode.HighQualityFormat
    // this one is key
    requestOptions.synchronous = true

    for asset in assets
    {
        if (asset.mediaType == PHAssetMediaType.Image)
        {

            PHImageManager.defaultManager().requestImageForAsset(asset as! PHAsset, targetSize: PHImageManagerMaximumSize, contentMode: PHImageContentMode.Default, options: requestOptions, resultHandler: { (pickedImage, info) in

                self.yourImageview.image = pickedImage // you can get image like this way

            })

        }
    }
    imagePickerController.dismissViewControllerAnimated(true, completion: nil)
}
11
jignesh Vadadoriya 27 पद 2016, 09:30
तो फिर मुझे छवि को संपत्ति में बदलना होगा और फिर मैं इसे चयन से हटा दूंगा
 – 
Jitendra Modi
27 पद 2016, 09:58
इसलिए आपको [PHAssets] जैसे PHAssets की सरणी बनाए रखने की आवश्यकता है और उस समय PHAssets को हटाते समय आपको PHAssets को सरणी से प्राप्त करने और उस संपत्ति को निकालने की आवश्यकता होती है
 – 
jignesh Vadadoriya
27 पद 2016, 10:09

QBImagePickerController में didFinishPickingAssets से स्विफ्ट 4.2 में PHAsset से वीडियो URL प्राप्त करें

let imagePicker = QBImagePickerController()
imagePicker.delegate = self
imagePicker.numberOfColumnsInPortrait = 2
imagePicker.maximumNumberOfSelection = 2
imagePicker.allowsMultipleSelection = true
imagePicker.mediaType = .video

self.present(imagePicker, animated: true, completion: nil)

func qb_imagePickerController(_ imagePickerController: QBImagePickerController!, didFinishPickingAssets assets: [Any]!) {
    for asset in assets
    {
        PHCachingImageManager().requestAVAsset(forVideo: asset as! PHAsset, options: nil, resultHandler: {(asset, audioMix, info) -> Void in
            if asset != nil {
                let avasset = asset as! AVURLAsset
                let urlVideo = avasset.url
                yourarray.add(urlVideo as URL)
            }

        })

    }


    imagePickerController.dismiss(animated: true) {
        //You can access video urls here
        print("Total Videos:\(yourarray.count)")
    }

}
2
Mahesh Chaudhari 24 अप्रैल 2019, 16:01