Russian Qt Forum

Qt => Общие вопросы => Тема начата: mcrads от Декабрь 12, 2009, 14:17



Название: Снять скриншот области экрана.
Отправлено: mcrads от Декабрь 12, 2009, 14:17
Подскажите пожалуйста, есть ли в Qt более шустрая шункция сняти скриншота чем QPixmap::grabWindow()? необходима скорость реакции максимум две сотки секунды, а пока что имеется только пять десяток =( большая проблема получается с этим.
и еще. как лучше реализовать снятие скриншота ЧАСТИ экрана? по выделению?


Название: Re: Снять скриншот области экрана.
Отправлено: mcrads от Декабрь 12, 2009, 14:18
извиняюсь за ошибки, торопился =)ыы


Название: Re: Снять скриншот области экрана.
Отправлено: lit-uriy от Декабрь 12, 2009, 14:33
на счёт скорости не скажу, а насчёт области экрана смотри программку с открытыми исходниками:
http://mapper.ru/screengrab/
у неё есть режим копирования области экрана


Название: Re: Снять скриншот области экрана.
Отправлено: mcrads от Декабрь 12, 2009, 14:42
Благодарю!!!! сейчас взгляну...


Название: Re: Снять скриншот области экрана.
Отправлено: zenden от Декабрь 12, 2009, 15:52
Опа, ссылку в мемориз. Может еще  кто знает компактный графичекий редактор на Qt с минимумом необходимых функций? Всё что нужно - обрезать, ужать, сделать надпись, пометить маркером, затереть. GPL естессна


Название: Re: Снять скриншот области экрана.
Отправлено: DOOMer от Декабрь 12, 2009, 16:13
mcrads
Более шустрее -- наверное только платформозависимым кодом.

По поводу скриншота части экрана:

QPixmap pixmap = QPixmap::grabWindow ( QApplication::desktop()->winId(), x, y, width, height) ;  
x, y, width, height -- переменные для верехнего угла области, и ширины высоты.

Ну а если надо через юзерское  выделение мышкой области экрана -- то тут сложней все. Получить  скрин всего десктопа, отрисовать его на развёрнутом на весь экран модальном диалоге, и потом фильтровать  события  мыши (нажатие кнопок и перемещение).

p.s. Я и сваял вышеуказанную софтину (ScreenGrab), там весьма кривой код (в том числе и в плане граббинга области экрана)


Название: Re: Снять скриншот области экрана.
Отправлено: mcrads от Декабрь 13, 2009, 09:53
Честно сказать, я заметил =)
В результате я сделал еще кривее =) я использую новое окно полупрозрачное без всяких виджетов. просто QDialog пустой. в рузультате им выделяется область экрана и потом снимается его положение и размеры =) но меня это не устраивает, так же как и отрисовка полноэкранного виджета с рабочим столом. вдруг пользователь захочет сначала на другой проге кликнуть? ломаю голову =(

PS тут еще одна проблема появилась. называется Global Hotkeys. а QxTlib не встает =(