【swift】이 사토호는 jpeg인가 png인가 아니면 〇〇? ?
【swift】이 요시오카 리호 짱은 jpeg인가 png인가 아니면 〇〇? ?
내 사토 짱 최고의 컬렉션
구현하다
URLExtension 만들기
URLExtension.swift
enum ImageType: String {
case png = "png"
case gif = "gif"
case jpg = "jpeg"
case bmp = "bmp"
}
extension URL {
func imageTypeForExtention() -> ImageType? {
let ext = self.pathExtension.lowercased()
switch ext {
case "jpg" , "jpeg":
return .jpg
case "png":
return .png
case "gif":
return .gif
case "bmp":
return .bmp
default:
return nil
}
}
}
UIImagePickerController로 요시오카 리호 짱 (이미지) 꺼내기
info[UIImagePickerControllerReferenceURL]
로 이미지의 URL을 알기 때문에 그 URL을 사용해 .pathExtension.lowercased()
로 판정하고 있습니다. ViewController.swift
/*
* 吉岡里帆ちゃんベスト・コレクション一覧(フォトライブラリ)から選ぶ
*/
private func showPickeView() {
if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.photoLibrary) {
let picker = UIImagePickerController()
picker.modalPresentationStyle = UIModalPresentationStyle.popover
picker.delegate = self
picker.sourceType = UIImagePickerControllerSourceType.photoLibrary
self.present(picker, animated: true, completion: nil)
}
}
/*
* 吉岡里帆ちゃんが選ばれたときに呼ばれる
*/
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
guard let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage else { return }
var imageType: ImageType = .jpg
// カメラのときはURLがないのでjpgを渡す
if let imageURL = info[UIImagePickerControllerReferenceURL] as? URL {
imageType = imageURL.imageTypeForExtention() ?? .jpg
}
print(imageType.rawValue)
//適当に画像と拡張子を渡しておくとか
//PhotoViewModel.sharedInstance.photo.value = (pickedImage, imageType)
// 閉じてから画面遷移しとくとか
//picker.dismiss(animated: true) {
// self.performSegue(segue: .toGenerate, sender: nil)
//}
}
/*
* カメラを起動する(吉岡里帆ちゃんじゃない)
*/
private func showCameraView() {
if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.camera) {
let picker = UIImagePickerController()
picker.modalPresentationStyle = UIModalPresentationStyle.fullScreen
picker.delegate = self // UINavigationControllerDelegate と UIImagePickerControllerDelegateを実装する
picker.sourceType = UIImagePickerControllerSourceType.camera
self.present(picker, animated: true, completion: nil)
}
}
}
데모
요약
imageTypeForExtention()
에서 확장자를 얻을 수있었습니다! ! 관련 기사
【swift】tableView에 아무것도 없으면 요시오카 리호 짱이 출현한다 <- 이쪽도 함께 부디
Reference
이 문제에 관하여(【swift】이 사토호는 jpeg인가 png인가 아니면 〇〇? ?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/okamu_/items/4ce91f45522f7fd0948f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)