在Swift 4上旋转用于Google ML Vision框架的UIImage

时间:2018-07-03 02:27:36

标签: ios swift apple-vision

当捕获图像时,默认为左方向。因此,当您将其送入textDetector内的Google Vision framework时,除非您将照片朝向左(右边的主页按钮),否则它们都会杂乱无章。我希望我的应用程序支持这两种方向。

enter image description here

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 个答案:

答案 0 :(得分: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
    }
}

我希望这会有所帮助,因为通常在遇到方向问题时都会使用它。