Вращающийся UIImage для платформы Google ML Vision на Swift 4 - PullRequest
0 голосов
/ 03 июля 2018

Когда изображение захвачено, по умолчанию используется ориентация влево. Таким образом, когда вы подаете его в 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")
    }
})

Я попытался воссоздать изображение с новой ориентацией, и это не изменит его.

Кто-нибудь знает, что делать?

Я попробовал все эти предложения Как повернуть изображение в Swift?

1 Ответ

0 голосов
/ 03 июля 2018

Попробуйте нормализовать объект 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
    }
}

Я надеюсь, что это помогает, потому что я обычно использую это всякий раз, когда есть проблемы с ориентацией.

...