2016-06-26 2 views
0

에로드 할 때, 나는 다음과 같이 갤러리를 열 수있는 버튼이 회전 :IOS 스위프트 이미지 내 응용 프로그램에서 UIImageView에

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) { 
    photoImageView.image = info[UIImagePickerControllerOriginalImage] as? UIImage   
    let fileName:String = "logo.png"   
    let arrayPaths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as NSString   
    let pngFileName = arrayPaths.stringByAppendingPathComponent(fileName)    UIImagePNGRepresentation(photoImageView.image!)!.writeToFile(pngFileName, atomically:true)   
    imageSave.setObject(fileName, forKey: "pngFileName")   
    self.dismissViewControllerAnimated(false, completion: nil) 
} 
:

@IBAction func selectPhoto() { 
    let photoPicker = UIImagePickerController() 
    photoPicker.delegate = self 
    photoPicker.sourceType = .PhotoLibrary 
    self.presentViewController(photoPicker, animated: true, completion: nil) 
} 

을 나는 사용자가 사진을 선택하고 저장하자

다음 View Controller에서 사용자가 아래 코드를 사용하여 장면에 도달 할 때마다 저장된 그림이 표시됩니다.

override func viewDidLoad() { 
    super.viewDidLoad() 

    if imageSave.stringForKey("pngFileName") != nil 
    { 
     let path = NSSearchPathForDirectoriesInDomains(
      .DocumentDirectory, .UserDomainMask, true)[0] as NSString 
     let fileName = NSUserDefaults.standardUserDefaults() 
      .stringForKey("pngFileName") 
     let imagePath = path.stringByAppendingPathComponent(fileName!) 
     let image = UIImage(contentsOfFile: imagePath)    
     photoImageView.image = image 

    } 

문제점 위로의 UIImageView에 이미지로드, 화상의 배향이 종종 90도 오른쪽으로 회전 시키면, 종종 90도 왼쪽으로 회전되거나 가끔 저장된 것으로 도시.

내가 여기서 잘못하고있는 것을 알려주세요. 어떤 도움을 주시면 감사하겠습니다. 고마워요

+1

[iPhone을 찍을 때 이미지의 방향을 감지하는 방법] 가능한 복제본 (http://stackoverflow.com/questions/5928257/iphone-how-to-detect-orientation-of-image- when-taken-taken) – tbilopavlovic

+0

저장중인 이미지의 방향을 감지하려고했지만 그 후에 해당 방향을 viewDidLoad()의 이미지에 다시 적용 할 수 없습니다. 검색된 Orientation 값을 viewDidLoad()에서 이미지에 적용하는 방법에 대한 단서가 있습니까? 감사. –

답변

0

다른 rect 크기 때문에 사진이 표시되어 동일한 문제가있었습니다. 원본 이미지 대신 복제 된 버전을 저장하면됩니다. 이것은 실제로 문제가되는 회전 문제를 제거합니다.

let imageName = info[UIImagePickerControllerOriginalImage] as! UIImage 
let thumb1 = UIImageJPEGRepresentation(imageName, 0.8) 
btnImageView.image = UIImage(data: thumb1!) 

이것은 간단하고 더러운 답변이지만 나를 위해 일했습니다. :-)

관련 문제