如何在 Xcode swift 中更改图片方向

Posted

技术标签:

【中文标题】如何在 Xcode swift 中更改图片方向【英文标题】:How to change picture orientation in Xcode swift 【发布时间】:2017-04-18 22:03:24 【问题描述】:

我从照片库中获取一张图片,并使用以下代码将其命名为图像:

@IBAction func importImage(_ sender: AnyObject) 
    let image = UIImagePickerController()
    image.delegate = self
    image.sourceType = UIImagePickerControllerSourceType.photoLibrary
    image.allowsEditing = false
    self.present(image, animated: true)  

还有这段代码:

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) 
    if let image = info[UIImagePickerControllerOriginalImage] as? UIImage 
        myImageView.image = image
        dismiss(animated: true, completion: nil)
        SubmitBtnOutlet.isHidden = false;
        Gurpcontroller.person = "yours";
        Gurpcontroller.collecterthing = "Coin";
        PictureViewController.imageuniversal = myImageView
     else 
        //Error message
    

我想看看图像是横向还是纵向。然后,如果是横向的,我想将其更改为纵向。

【问题讨论】:

根据定义,landscape 表示图像size 的宽度大于高度。因此,如果图像是 200 宽 x 100 高,您能否包含更多关于您想要的内容的详细信息?如果你的 UIImageView 是 200 x 200,你总是可以使用 .scaleAspectFit,但很难知道这是否是你想要做的。 抛光的代码语法尽可能简洁并删除空格。还稍微改变了标题措辞(orientate 不是一个词,而是以我理解作者的方式用“改变方向”这个短语来表示)。我还修正了portrait 的小拼写,以将该问题澄清为图像方向问题,以始终将图像置于portrait 模式。 就答案而言,@dfd 的第一条评论是正确的——如果图像的宽度大于其高度,则根据landscape 模式的定义。从那里,您可以旋转或裁剪到您想要的内容以恢复portrait 图像。 【参考方案1】:

您可以使用image.imageOrientation 获取方向。

为了改变方向,最快的解决方案是从实际图像创建一个新的 UIImage,如下所示:

let newImage = UIImage(cgImage: image.cgImage!, scale: image.scale, orientation: .up)

【讨论】:

它不会让我这样做这是我放的 var newImage = PictureViewController.imageuniversal.image newImage = UIImage(cgnewImage: newImage?.cgImage!, scale: newImage?.scale,orientation: .up ) 请正确阅读答案。变量image 是您要操作的图像。变量newImage 将存储生成的图像。 cgImage是参数名,不能改成cgnewImage。您也在右侧使用newImage 的属性。基本上,您正在尝试访问尚不存在的图像的属性。 改用这几行代码let image = PictureViewController.imageuniversal.imagelet newImage = UIImage(cgImage: image.cgImage!, scale: image.scale, orientation: .up)

以上是关于如何在 Xcode swift 中更改图片方向的主要内容,如果未能解决你的问题,请参考以下文章

Xcode+Swift:UIImageView 自动产生空白区域。如何删除它?

在 Swift 中,当方向发生时如何更改表格单元格布局?

如何在 Swift 中以编程方式更改设备方向?

如何更改xcode 8.3.3(swift3)的语言设置[重复]

按下 xcode 7 / Swift 2 时如何更改按钮的图像? [复制]

如何在 quickblox (Swift, iOS, xcode) 中实现发送图片