2017-02-03 5 views
0

아래 코드는 갤러리에서 가져온 이미지를 완벽하게 처리합니다. 카메라로 촬영하면 작동하지 않습니다. 이미지를 저장 장치에 저장하고 다시 읽으려고했지만 그 작업을 수행 할 수 없었습니다. 그래서 어느 누구도이 일에서 나를 도울 수 있습니까? 고맙습니다.카메라로 촬영 한 UIImagePickerController에서 이미지 이름을 가져 오는 방법

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) { 


    if let referenceUrl = info[UIImagePickerControllerReferenceURL] as? NSURL, image = info[UIImagePickerControllerOriginalImage] as? UIImage { 
      let phAsset = PHAsset.fetchAssetsWithALAssetURLs([referenceUrl], options: nil).lastObject as! PHAsset 
      PHImageManager.defaultManager().requestImageDataForAsset(phAsset, options: PHImageRequestOptions(), resultHandler: { (imagedata, dataUTI, orientation, info) in 
       if info!.keys.contains(NSString(string: "PHImageFileURLKey")) { 
        let path = info![NSString(string: "PHImageFileURLKey")] as! NSURL 
        print("path q\(path)") 

        self.mImageUrl = path 
        self.mlocalPath = path.path 
        self.mImageExtension = path.pathExtension 
        self.mImageName = path.lastPathComponent! 
        print("mImageName q\(self.mImageName)") 
       } 

      }) 
    } 

    dismissViewControllerAnimated(true, completion: nil) 

} 
당신이

의 ViewController는 A addObserver로 알림을 사용할 수 있습니다

+0

이미지 피커를 사용하지 마십시오. 더 나은 능력을 가진 사진 프레임 워크를 사용하십시오. – Satyam

+0

@Satyam 여전히 이미지 픽커를 사용하고'fAsAset (withALAssetURLs : options :)'를 사용하여'PHAsset'을 얻을 수 있습니다. –

+0

@LeoNatan, 나는 당신과 동의합니다. 나는 사진 프레임 워크가 더 사용하기 좋다고 말했다. – Satyam

답변

0

: 당신이 변경 이미지를 원의 ViewController에서이 방법을 추가

NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.methodOfImageChange(_:)), name:"ImageChanged", object: nil) 

있는 viewDidLoad

이 추가

func methodOfImageChange(notification: NSNotification){ 
    let appStatus = notification.userInfo as? Dictionary<String,AnyObject> 
    // appStatus contains your image in "image" key 
    } 

이제 didFinishPickingMediaWithInfo에 다음을 추가하십시오.

let dictionary: [String:AnyObject] = [ 
     "image" : (info[UIImagePickerControllerOriginalImage] as? UIImage)!, 
     ] 
    NSNotificationCenter.defaultCenter().postNotificationName("ImageChanged", object: self, userInfo: dictionary) 

    picker .dismissViewControllerAnimated(true, completion: nil) 

희망이 이미지는 아직 갤러리에없는

0

을하는 데 도움이, 그래서 당신은 이름이 생각하지 않는다. 내 애플 리케이션 (네비게이션 컨트롤러를 통해) 흐름에서

은 다음과 같습니다

  • 선택 VC (카메라 또는 사진 라이브러리의 선택) ->
  • UIImagePickerController를 ->
  • 편집 VC (다시 탐색와 동작 버튼 - 사진 라이브러리에 저장)

사용자가 카메라를 선택하면 사진을 찍고 옵션은 "Retake"또는 "Use Photo"입니다. 그들은 "사진 사용"을 선택하고 편집 VC에 있습니다.

그런 다음 VC 선택으로 돌아가려면 이미지를 찾을 수 없습니다.