/// <summary>
        /// Performs OCR on a rectangle inside the given image.
        /// </summary>
        /// <param name="tesseract">The tesseract instance.</param>
        /// <param name="image">The image.</param>
        /// <param name="rectangle">The rectangle to perform OCR in.</param>
        /// <returns>The found text as a UTF8 string.</returns>
        public static Task <string> ReadAsync(this ITesseract tesseract, Image image, Rectangle rectangle)
        {
            if (tesseract is null)
            {
                throw new ArgumentNullException(nameof(tesseract));
            }

            byte[] data = BitmapToBytes(image);
            int    bpp  = Image.GetPixelFormatSize(image.PixelFormat) / 8;

            return(tesseract.ReadAsync(data, image.Width, image.Height, bpp, rectangle.X, rectangle.Y, rectangle.Width, rectangle.Height));
        }
Beispiel #2
0
        /// <summary>
        /// Performs OCR on a rectangle inside the given image.
        /// </summary>
        /// <param name="tesseract">The tesseract instance.</param>
        /// <param name="image">The image.</param>
        /// <param name="rectangle">The rectangle to perform OCR in.</param>
        /// <returns>The found text as a UTF8 string.</returns>
        public static Task <string> ReadAsync(this ITesseract tesseract, SKBitmap image, SKRect rectangle)
        {
            if (tesseract is null)
            {
                throw new ArgumentNullException(nameof(tesseract));
            }

            if (image is null)
            {
                throw new ArgumentNullException(nameof(image));
            }

            byte[] data = BitmapToBytes(image);
            return(tesseract.ReadAsync(data, image.Width, image.Height, 4, (int)rectangle.Left, (int)rectangle.Top, (int)rectangle.Width, (int)rectangle.Height));
        }
        /// <summary>
        /// Performs OCR on a rectangle inside the given image.
        /// </summary>
        /// <param name="tesseract">The tesseract instance.</param>
        /// <param name="image">The image.</param>
        /// <param name="rectangle">The rectangle to perform OCR in.</param>
        /// <returns>The found text as a UTF8 string.</returns>
        public static Task <string> ReadAsync(this ITesseract tesseract, Image image, Rectangle rectangle)
        {
            if (tesseract is null)
            {
                throw new ArgumentNullException(nameof(tesseract));
            }

            if (image is null)
            {
                throw new ArgumentNullException(nameof(image));
            }

            byte[] data = BitmapToBytes(image);
            return(tesseract.ReadAsync(data, image.Width, image.Height, 4, rectangle.X, rectangle.Y, rectangle.Width, rectangle.Height));
        }
Beispiel #4
0
 /// <summary>
 /// Performs OCR on a rectangle inside the given image.
 /// </summary>
 /// <param name="tesseract">The tesseract instance.</param>
 /// <param name="image">The image.</param>
 /// <param name="rectangle">The rectangle to perform OCR in.</param>
 /// <returns>The found text as a UTF8 string.</returns>
 public static string Read(this ITesseract tesseract, SKImage image, SKRect rectangle)
 => tesseract.Read(SKBitmap.FromImage(image), rectangle);
Beispiel #5
0
 /// <summary>
 /// Performs OCR on the given image.
 /// </summary>
 /// <param name="tesseract">The tesseract instance.</param>
 /// <param name="image">The image.</param>
 /// <returns>The found text as a UTF8 string.</returns>
 public static string Read(this ITesseract tesseract, SKImage image)
 => tesseract.Read(SKBitmap.FromImage(image));
Beispiel #6
0
 /// <summary>
 /// Performs OCR on the given image.
 /// </summary>
 /// <param name="tesseract">The tesseract instance.</param>
 /// <param name="image">The image.</param>
 /// <returns>The found text as a UTF8 string.</returns>
 public static Task <string> ReadAsync(this ITesseract tesseract, SKBitmap image)
 => tesseract.ReadAsync(image, new SKRect(-1, -1, -1, -1));
Beispiel #7
0
 /// <summary>
 /// Performs OCR on the given image.
 /// </summary>
 /// <param name="tesseract">The tesseract instance.</param>
 /// <param name="image">The image.</param>
 /// <returns>The found text as a UTF8 string.</returns>
 public static string Read(this ITesseract tesseract, SKBitmap image)
 => tesseract.Read(image, new SKRect(-1, -1, -1, -1));
Beispiel #8
0
 /// <summary>
 /// Performs OCR on a rectangle inside the given image.
 /// </summary>
 /// <param name="tesseract">The tesseract instance.</param>
 /// <param name="image">The image.</param>
 /// <param name="rectangle">The rectangle to perform OCR in.</param>
 /// <returns>The found text as a UTF8 string.</returns>
 public static Task <string> ReadAsync(this ITesseract tesseract, SKImage image, SKRect rectangle)
 => tesseract.ReadAsync(SKBitmap.FromImage(image), rectangle);
 /// <summary>
 /// Performs OCR on the given image.
 /// </summary>
 /// <param name="tesseract">The tesseract instance.</param>
 /// <param name="image">The image.</param>
 /// <returns>The found text as a UTF8 string.</returns>
 public static Task <string> ReadAsync(this ITesseract tesseract, Image image)
 => tesseract.ReadAsync(image, new Rectangle(-1, -1, -1, -1));
 /// <summary>
 /// Performs OCR on the given image.
 /// </summary>
 /// <param name="tesseract">The tesseract instance.</param>
 /// <param name="image">The image.</param>
 /// <returns>The found text as a UTF8 string.</returns>
 public static string Read(this ITesseract tesseract, Image image)
 => tesseract.Read(image, new Rectangle(-1, -1, -1, -1));