Я хочу применить приложение google translate bru sh к моему изображению. - PullRequest
0 голосов
/ 24 января 2020

Привет, я сделал текстовое приложение OCR iOS, используя swift. Для этого я использовал OCR Engine от tesseract, и его точность довольно низкая. Я хочу выделить текстовое поле, как на google translate bru sh влияет на него, пожалуйста, помогите мне, как его применить?

image

1 Ответ

1 голос
/ 24 февраля 2020

Мне удалось получить этот эффект, добавив еще один UIImageView (будем называть DrawingImageView для ясности) поверх UIImageView, который отображает изображение с текстом. Идея состоит в том, чтобы сначала отобразить полностью черное изображение с примерно 0,3 альфа в DrawingImageView, а затем, когда вы рисуете линию, использовать .destinationOut в качестве режима смешивания контекста. Код может выглядеть примерно так:

override func viewDidLoad() {
    super.viewDidLoad()
    drawBlackBackground()
}

func drawBlackBackground() {
    UIGraphicsBeginImageContext(drawingImageView.frame.size)
    UIGraphicsGetCurrentContext()
    let image = UIImage(named: "black")
    image?.draw(in: drawingImageView.frame)
    self.drawingImageView.image = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()
}

func drawLineFrom(fromPoint: CGPoint, toPoint: CGPoint) {
    UIGraphicsBeginImageContext(drawingImageView.frame.size)
    let context = UIGraphicsGetCurrentContext()
    drawingImageView.image?.draw(in: drawingImageView.frame)
    context?.move(to: fromPoint)
    context?.addLine(to: toPoint)
    context?.setLineCap(.round)
    context?.setLineWidth(20)
    context?.setStrokeColor(red: 0, green: 1, blue: 0, alpha: 1)
    context?.setBlendMode(.destinationOut)
    context?.strokePath()
    self.drawingImageView.image = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()
}

Вы можете проверить этот пост для получения дополнительной информации о рисовании в swift и этот один для более продвинутой версии. , Также здесь вы можете найти больше информации о режимах наложения.

...