While using self.imagePicker.mediaTypes = [(kUTTypeImage as String)]
through UIImagePicker
I am able to select all types of images but my requirement is select only JPG, JPEG and PNG
type images through photo library and GIF
and HEIC
(live photos) are not allowed.
So, Is there any way by which I can prevent selecting GIFs and HEIC type photo while imagePicker.sourceType = .photoLibrary
Code:
imagePicker.delegate = self
let actionSheet = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
actionSheet.addAction(UIAlertAction(title: StringConstants.Actions.Camera, style: .default, handler: { (action:UIAlertAction) in
CheckPermissions.checkPermission(permissionFor: .Camera,vc:self) { (success) in
if success {
DispatchQueue.main.async {[unowned self] in
if(UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.camera)) {
self.view.endEditing(true)
self.imagePicker.allowsEditing = false
self.imagePicker.sourceType = UIImagePickerControllerSourceType.camera
self.imagePicker.cameraCaptureMode = .photo
self.imagePicker.showsCameraControls = true
self.imagePicker.modalPresentationStyle = .overFullScreen
self.present(self.imagePicker, animated: true, completion: nil)
}
else {
self.showAlert(withTitle: kEmptyString, message: StringConstants.AlertMessage.cameraAlertMessage, andOkAction: nil )
}
}
}
}
}))
actionSheet.addAction(UIAlertAction(title: StringConstants.Actions.PhotoLibrary, style: .default, handler: { (action:UIAlertAction) in
CheckPermissions.checkPermission(permissionFor: .PhotoLibrary,vc: self) { (success) in
if success {
DispatchQueue.main.async {[unowned self] in
self.view.endEditing(true)
self.imagePicker.allowsEditing = false
self.imagePicker.sourceType = .photoLibrary
self.imagePicker.modalPresentationStyle = .overFullScreen
self.imagePicker.navigationBar.isTranslucent = false
self.imagePicker.navigationBar.titleTextAttributes = [NSAttributedStringKey.foregroundColor : UIColor.white]
self.present(self.imagePicker, animated: true, completion: nil)
}
}
}
}))
Simply No. There is no way to give input of specific formate to UIImagePicker
and get the result of only that formate.
UIImagePicker
only accepts kUTTypeMovie
and kUTTypeImage
as a mediaType
. What you can do is check the image/file extension after picking any image in didFinishPickingMediaWithInfo
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With