Swift 我想在我的图像OCR上应用谷歌翻译应用程序笔刷效果

Swift 我想在我的图像OCR上应用谷歌翻译应用程序笔刷效果,swift,tesseract,swiftocr,Swift,Tesseract,Swiftocr,嗨,我用swift创建了一个文本OCR iOS应用程序。我使用了tesseract OCR引擎,它的精确度非常低。我想选择像谷歌上的文字区域翻译笔刷效果就可以了,请帮我如何应用它 我通过在UIImageView顶部添加另一个UIImageView(为清晰起见,称为drawingImageView)来实现这一效果,UIImageView显示带有文本的图像。我们的想法是首先在drawingImageView中显示一个完全黑色的图像,类似于0.3 alpha,然后在绘制线条时使用.destinatio

嗨,我用swift创建了一个文本OCR iOS应用程序。我使用了tesseract OCR引擎,它的精确度非常低。我想选择像谷歌上的文字区域翻译笔刷效果就可以了,请帮我如何应用它


我通过在UIImageView顶部添加另一个UIImageView(为清晰起见,称为drawingImageView)来实现这一效果,UIImageView显示带有文本的图像。我们的想法是首先在drawingImageView中显示一个完全黑色的图像,类似于0.3 alpha,然后在绘制线条时使用.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()
}

您可以查看post以了解有关swift绘图的更多信息,以及更高级版本的信息。 还可以找到有关混合模式的更多信息