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
的身高与其自身进行比较吗?看起来很奇怪。
我找到了这个代码的解决方案? -> !
if(pickedImage!.size.width > pickedImage!.size.height)
另一种可能的解决方案是使用开关模式匹配:
switch image?.size {
case .some(let size) where size.height > size.width:
// do something
default:
break
}
我想从图库中读取照片
在这个函数中
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
的身高与其自身进行比较吗?看起来很奇怪。
我找到了这个代码的解决方案? -> !
if(pickedImage!.size.width > pickedImage!.size.height)
另一种可能的解决方案是使用开关模式匹配:
switch image?.size {
case .some(let size) where size.height > size.width:
// do something
default:
break
}