Получить текст с экрана

94
21 сентября 2021, 03:10

Я переписываю код WPF в UWP. Задача состоит в том, чтобы сделать скриншот экрана, вырезать его и скормить его библиотеке, которая найдет текст с фото.

библиотека с которой работаю - tesseract-ocr https://github.com/tesseract-ocr/.

Мой код в WPF ниже:

// Делаю скрин и обрезаю его
// _bounds.Width = 1920, _bounds.Height = 1080;
using (Bitmap bmp = new Bitmap((int)_bounds.Width, (int)_bounds.Height))
{
    using (Graphics graph = Graphics.FromImage(bmp))
    {
        graph.CopyFromScreen(0, 0, 0, 0, bmp.Size);
        // save for check result
        bmp?.Save($@"{_rootFullImage}\{_counter.ToString()}.jpg");
        // XPosition, YPosition, WidthPosition, HeightPosition - values how cut it
        Bitmap clippedBitMap = bmp?.Clone(new Rectangle((int)XPosition, (int)YPosition, (int)WidthPosition, (int)HeightPosition), bmp.PixelFormat);
        // save for check result
        clippedBitMap?.Save($@"{_rootCutImage}\{_counter.ToString()}.jpg");
        string ocrText;
        using (TesseractEngine engine = new TesseractEngine(@"./tessdata", "eng", EngineMode.Default))
        {
            using (Pix img = Tesseract.PixConverter.ToPix(clippedBitMap))
            {
                using (Page page = engine.Process(img))
                {
                    ocrText = page.GetText();
                }
            }
        }
    }
}

Bitmap and Graphics - используют "System.Drawing", UWP не работает с ним. Главная задача получить текст с экрана, если есть, что-то лучше tesseractа - предлагайте. Объект Pix имеет следующий конструктор:

Помогите кто может плиз.

Answer 1

Tesseract работает только c изображением в формате Tiff. Вам сначала нужно конвертировать изображение в Tiff, а дальше передавать его в engine.Process(Pix.LoadTiffFromMemory(tiffImageBytes));

Вам это не нужно: Pix img = Tesseract.PixConverter.ToPix(clippedBitMap).

READ ALSO
Как перебрать большой массив на 60000 строк?

Как перебрать большой массив на 60000 строк?

на пк если запустить такой скрипт то комп очень долго думает возможно например етот код залить на VPS сервак чтобы он быстро ответ давал, или...

99
Как получить значение тега из SimpleXMLElement?

Как получить значение тега из SimpleXMLElement?

Как получить значение тега <category> и записать его в масив?

119
Как подключать стили в php?

Как подключать стили в php?

Я новичок в phpСоздал папку в которой 2 файла - index

96
Не работает запрос UPDATE php

Не работает запрос UPDATE php

Не работает запрос UPDATE, данные не изменяютсяПеременные существуют, через echo проверял, подключение к базе данных тоже, другие запросы выполняются

102