如何在 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.image
let newImage = UIImage(cgImage: image.cgImage!, scale: image.scale, orientation: .up)
以上是关于如何在 Xcode swift 中更改图片方向的主要内容,如果未能解决你的问题,请参考以下文章
Xcode+Swift:UIImageView 自动产生空白区域。如何删除它?
如何更改xcode 8.3.3(swift3)的语言设置[重复]