352 / 331 / 49
Регистрация: 12.12.2011
Сообщений: 563
1
.NET 4.x

Скриншот области экрана

11.01.2012, 03:08. Показов 4576. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, есть некий фрагмент кода:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
private static string getString()
        {
            string imgText = null;
            modi = new MODI.Document();
            string str = Application.StartupPath + "\\temp.png";
            modi.Create(str);
            modi.OCR(MODI.MiLANGUAGES.miLANG_ENGLISH, true, true);
            foreach (MODI.Image image in modi.Images)
                imgText = image.Layout.Text;
            return imgText;
        }
 
        private static int parseInt32(string s)
        {
            int intNum;
            rx = new Regex(@"(?<Value>\d|\.+)"); //Отбираем только цифры
            rxMatch = rx.Match(s);
            string num = rxMatch.Groups["Value"].Value;
            try
            {
                intNum = Convert.ToInt32(num);
            }
            catch (Exception)
            {
                return 0;
            }
            return intNum;
        }
 
        private static void screenShot()
        {
            sc = new ScreenCapture();
            Image img = sc.CaptureScreen();
            sc.CaptureWindowToFile(MainForm.handle, "temp.png", ImageFormat.Png);
        }
который, пока что, делает скриншот главной формы, затем считывает с изображения весь текст, а затем выбирает из текста только числа.
Для чернового варианта скриншот формы конечно подходит, но для окончательной версии нужно, что бы пользователь мог сам выбрать область сканирования.
Собственно сам вопрос, каким способом сделать выбор области сканирования?
PS Пока, что придумал только создание прозрачной формы над заданной областью и ее скриншот
PPS Критерии: размер области статичный, расположение пользователь задает сам.

Добавлено через 5 часов 59 минут
В общем разобрался, сделал так как и предполагал с самого начала.
1. Создал форму
2. Получил координаты левого верхнего угла
3. Основываясь на полученных координатах создал Rectangle
4. Переписал скриншотер, что бы тот мог снимать по координатам полученного прямоугольника

В конце просто скрываю полупрозрачную форму, делаю на ее месте скриншот.

Кому интересно вот сам скриншотер
C#
1
2
3
4
5
6
7
8
9
10
11
12
public Image CaptureRectangle(Rectangle rect)
        {
            Bitmap bmp = new Bitmap(rect.Width, rect.Height, PixelFormat.Format32bppArgb);
            Graphics g = Graphics.FromImage(bmp);
            g.CopyFromScreen(rect.Left, rect.Top, 0, 0, bmp.Size, CopyPixelOperation.SourceCopy);
            return bmp;
        }
        public void CaptureRectangleToFile(string filename, Rectangle rect)
        {
            Image bmp = CaptureRectangle(rect);
            bmp.Save(filename, ImageFormat.Png);
        }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.01.2012, 03:08
Ответы с готовыми решениями:

Скриншот не всего экрана, а только изменившейся области
В общем задача такая. Вишу программу для удаленного управления. Для оптимизации решил отправлять не...

Получить скриншот экрана из игры
Добрый день. Подскажите, пожалуйста, как можно получить скриншот экрана, если запущена игра. ...

Скриншот выделенного участка экрана
В вин7 есть утилитка, позволяющая &quot;вырезать&quot; часть текущего экрана, хочу реализовать нечто...

Скриншот экрана и и его сохранение в папку
Всем привет. Имеется форма, на ней кнопка. Как сделать так, что бы при нажатии кнопки, сделать...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.01.2012, 03:08
Помогаю со студенческими работами здесь

Скриншот определенной области. Как эту область задать
Добрый день. С шарпом давно не работал, нужно создать прогу для себя. Есть код ...

Скриншот экрана и неугодные белые точки на нем
Создаю программу, которая делает скриншоты и постит их на рабочий стол: Пишу Size screen =...

Сделать скриншот экрана, его часть с образцом и определить соответствие в процентах
Нужно сделать скриншот экрана, после чего сравнить его или его часть с образцом и определить...

[WPF] Скриншот выделенной области экрана
Подскажите, пожалуйста, как правильно проделать следующие действия: пользователь нажимает кнопку...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru