在 Swift 4 上为 Google ML Vision 框架旋转 UIImage
Posted
技术标签:
【中文标题】在 Swift 4 上为 Google ML Vision 框架旋转 UIImage【英文标题】:Rotating UIImage for Google ML Vision framework on Swift 4 【发布时间】:2018-07-03 02:27:36 【问题描述】:当图像被捕获时,它默认为左方向。因此,当您将其输入到Google Vision framework
中的textDetector
时,它会变得混乱,除非您将照片朝左(右侧的主页按钮)。我希望我的应用支持两种方向。
let visionImage = VisionImage(image: image)
self.textDetector?.detect(in: visionImage, completion: (features, error) in
//2
guard error == nil, let features = features, !features.isEmpty else
print("Could not recognize any text")
self.dismiss(animated: true, completion: nil)
return
//3
print("Detected Text Has \(features.count) Blocks:\n\n")
for block in features
//4
print("\(block.text)\n\n")
)
我已尝试使用新方向重新创建图像,但这不会改变它。
有人知道该怎么做吗?
我已经尝试了所有这些建议 How to rotate image in Swift?
【问题讨论】:
【参考方案1】:尝试使用这个函数规范化 UIImage 对象:
import UIKit
public extension UIImage
public func normalizeImage() -> UIImage
if self.imageOrientation == UIImageOrientation.up
return self
UIGraphicsBeginImageContextWithOptions(self.size, false, self.scale)
self.draw(in: CGRect(x: 0, y: 0, width: self.size.width, height: self.size.height))
let normalizedImage: UIImage = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
return normalizedImage
我希望这会有所帮助,因为我通常会在出现方向问题时使用它。
【讨论】:
以上是关于在 Swift 4 上为 Google ML Vision 框架旋转 UIImage的主要内容,如果未能解决你的问题,请参考以下文章
Swift 3 - 在 GMSMarker 上长按并打印其坐标(Google Maps iOS SDK)
Swift 3 - 如何在 .xib 文件上为 UIScrollView 分配委托?
Web ML+ WebAssembly 支持实现 Google Meet 背景模糊功能