Created
January 29, 2020 09:50
-
-
Save ashishrawat2911/03e14dd6ec2252384ddccab70862781b to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // Copyright 2018 The Chromium Authors. All rights reserved. | |
| // Paints rectangles around all the text in the image. | |
| class TextDetectorPainter extends CustomPainter { | |
| TextDetectorPainter(this.absoluteImageSize, this.visionText); | |
| final Size absoluteImageSize; | |
| final VisionText visionText; | |
| @override | |
| void paint(Canvas canvas, Size size) { | |
| final double scaleX = size.width / absoluteImageSize.width; | |
| final double scaleY = size.height / absoluteImageSize.height; | |
| Rect scaleRect(TextContainer container) { | |
| return Rect.fromLTRB( | |
| container.boundingBox.left * scaleX, | |
| container.boundingBox.top * scaleY, | |
| container.boundingBox.right * scaleX, | |
| container.boundingBox.bottom * scaleY, | |
| ); | |
| } | |
| final Paint paint = Paint() | |
| ..style = PaintingStyle.stroke | |
| ..strokeWidth = 2.0; | |
| for (TextBlock block in visionText.blocks) { | |
| for (TextLine line in block.lines) { | |
| for (TextElement element in line.elements) { | |
| paint.color = Colors.green; | |
| canvas.drawRect(scaleRect(element), paint); | |
| } | |
| paint.color = Colors.yellow; | |
| canvas.drawRect(scaleRect(line), paint); | |
| } | |
| paint.color = Colors.red; | |
| canvas.drawRect(scaleRect(block), paint); | |
| } | |
| } | |
| @override | |
| bool shouldRepaint(TextDetectorPainter oldDelegate) { | |
| return oldDelegate.absoluteImageSize != absoluteImageSize || | |
| oldDelegate.visionText != visionText; | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment