IOS Swift 图像加载到 UIImageView 时旋转

标签 ios iphone xcode swift 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 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 度,有时会显示为保存时的样子。

请让我知道我在这里做错了什么。任何帮助,将不胜感激。谢谢

最佳答案

我遇到了同样的问题,因为照片显示的矩形大小不同。您可以使用一个技巧,将原始图像保存为复制版本。这将丢弃旋转问题,这实际上是一个拟合问题。

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

这只是一个快速而肮脏的答案,但对我有用。 :-)

关于IOS Swift 图像加载到 UIImageView 时旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38043760/

相关文章:

ios - 用于双击的 UITapGestureRecognizer 问题

iphone - 使用加速度计或核心运动框架查找速度。

iphone - 使 UICollectionView 中的 insertItemsAtIndexPath 不设置动画

ios - iPhone/iOS 状态栏未隐藏在 Xcode 项目中

ios - 链接器命令失败,退出代码为 1(使用 -v 查看)

ios - 当用户输入格式为 (1,000) 的数字(如 (1000))时,将逗号添加到计算器中的字符串

ios - 应用程序设置为 'iPhone' ,但它仍然在 iPad 上延伸到全屏?

ios - "The fi bug"奇怪的 iOS 7 属性文本错误

iphone - sqlite3查询可在命令行上运行,但在iOS 6 SImulator中不返回任何数据

需要 Xcode 10.2 空间