繁体   English   中英

UIimage使用Swift检测风景图像

[英]UIimage Detect Landscape Image with Swift

我想从图书馆看照片

在这个功能

 func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
        let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage

现在我想知道是否是风景照,我尝试将此代码绑定

if(pickedImage?.size.width > pickedImage?.size.height)

但是我收到此错误二进制运算符'>'无法应用于两个'CGFloat?' 操作数我怎么能解决这个问题

尝试这个

 if let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage

   { 
      if pickedImage.size.width > pickedImage.size.height 
      {
         /// landscape mode
      }

   }

}

您尝试使用Optional值而不是未包装的问题。 要释放价值,您可以使用guard

guard let pickedImage = pickedImage else { 
    // false logic here
    return 
}

if pickedImage.size.height > pickedImage.size.height {

} else {

}

顺便说一句,您确定要将pickedImage的高度pickedImage自身进行比较吗? 看起来很奇怪。

我找到此代码的解决方案? ->!

if(pickedImage!.size.width > pickedImage!.size.height)

另一种可能的解决方案是使用开关模式匹配:

switch image?.size {
case .some(let size) where size.height > size.width:
  // do something
default:
  break
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM