簡體   English   中英

將iOS Swift圖像加載到UIImageView時旋轉

[英]IOS Swift Image rotated when loaded into UIImageView

在我的應用程序中,我有一個按鈕可以用來打開圖庫,如下所示:

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

我讓用戶選擇一張照片並保存:

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)
}

然后從View控制器中,每次用戶使用以下代碼到達場景時,都會顯示保存的圖片。

 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度,有時會顯示為保存狀態。

請讓我知道我在做什么錯。 任何幫助,將不勝感激。 謝謝

我遇到了同樣的問題,因為顯示照片的矩形尺寸不同。 您可以采取一些技巧,並保存復制版本而不是原始圖像。 這將丟棄旋轉問題,而這實際上是一個擬合問題。

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

這只是一個快速而骯臟的答案,但是對我有用。 :-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM