Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Олег2000про
-122 / 0 / 0
Регистрация: 13.11.2015
Сообщений: 459
#1

Скриншот средствами делфи

08.10.2016, 17:46. Просмотров 225. Ответов 7
Метки нет (Все метки)

Есть такой код:
Delphi
1
2
3
4
5
6
7
  b:=TBitmap.Create;
  f:=TJPEGImage.Create;
  b.Width := Screen.Width;
  b.Height := Screen.Height;
  BitBlt(b.Canvas.Handle, 0,0, Screen.Width, Screen.Height,
  GetDC(0), 0,0,SRCCOPY);
  Image1.Picture.Assign(b);
Делает скрины и показывает их. Добавляю:
Delphi
1
2
3
  f.Assign(b);
  f.CompressionQuality:=100;
  f.Compress;
Программа начинает подлагивать на момент снятия скрина. Как убрать лаги?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.10.2016, 17:46
Ответы с готовыми решениями:

Узнать имя файла средствами делфи
Имеется папка В ней файлов 200 имена файлов типа...

Как средствами делфи раскодировать текст
Как можно средствами делфи раскодировать такой текст:...

Ping средствами делфи
Всем привет!!! Может кто подсказать как написать простой пинг в делфи, т.е...

как создать диалог стандартными средствами Делфи?
Мне нужно организовать диалог с пользователем, Сейчас сделано как переход от...

Как в Делфи выполнить код, написанный на Делфи, например в поле ввода?
Есть способ в Делфи выполнить код, написанный на Делфи, например в поле ввода?

7
BOGG ART
576 / 444 / 146
Регистрация: 09.12.2013
Сообщений: 2,384
Записей в блоге: 2
08.10.2016, 19:38 #2
Нельзя так вот сувать GetDC в функцию. Она захватывает ресурсы, которые надо освобождать. У вас утечка памяти.
Сделайте один раз GetDC в OnCreate и один раз ReleaseDC в OnDestroy. Пользуйтесь только значением переменной, в которой будете хранить результат. Картинки тоже подумайте где логичнее создавать и уничтожать.
TJPEGImage довольно медленная хрень, и по загрузе, и по конвертации, и по сохранению. Не знаю что вы подразумеваете под "лаги", но с этим классом в любом случае ответ - никак.
0
Олег2000про
-122 / 0 / 0
Регистрация: 13.11.2015
Сообщений: 459
08.10.2016, 19:47  [ТС] #3
BOGG ART, программа зависает на 1 секунду. Хотелось бы исправить

Добавлено через 39 секунд
Цитата Сообщение от BOGG ART Посмотреть сообщение
Не знаю что вы подразумеваете под "лаги"
программа зависает на 1 сек

Добавлено через 6 минут
BOGG ART, Ладно.. Как тогда еще можно сжать картинку?
0
Hikari
Хитрая блондиночка $)
1451 / 963 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
08.10.2016, 19:49 #4
Цитата Сообщение от Олег2000про Посмотреть сообщение
программа зависает на 1 сек
Как часто ты скриншотишь?
Обычно такие действия прячут в Thread, чтоб основной поток мог работать независимо.
0
Олег2000про
-122 / 0 / 0
Регистрация: 13.11.2015
Сообщений: 459
08.10.2016, 19:51  [ТС] #5
Hikari, каждые 3 секунды
0
Убежденный
Ушел с форума
Эксперт С++
15954 / 7266 / 1178
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
08.10.2016, 19:56 #6
Олег2000про, если твою программу планируется запускать на Windows 8 и выше,
то я советую отказаться от GetDC и от GDI в целом для этой задачи. На последних версиях
Windows оконную подсистему немного переделали и теперь GetDC(0), особенно на больших
разрешениях, иногда "педалит" не по-детски (см. в диспетчере задач загрузку CPU по
процессу dwm.exe - это просто ужас).
1
BOGG ART
576 / 444 / 146
Регистрация: 09.12.2013
Сообщений: 2,384
Записей в блоге: 2
08.10.2016, 20:45 #7
Олег2000про, GDI+
Версия Делфи?
0
Олег2000про
-122 / 0 / 0
Регистрация: 13.11.2015
Сообщений: 459
09.10.2016, 09:23  [ТС] #8
BOGG ART, xe3
0
09.10.2016, 09:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.10.2016, 09:23

Здр, пожалуйста попробуйте запутсить .exe написанное на делфи 10 у себя, те у кого делфи 7
и скиньте скрин пожалуйста срочно http://www.fayloobmennik.net/4874373 перед...

У меня стоит Делфи 5, возможно еще поставить и Делфи 7, или будут проблемы?!
Где можно скачать Делфи 7, дайте ссылку! У меня стоит Делфи 5, возможно еще...

Как открыть doc в делфи? Или как можно написать огромный текст в делфи?
Думаю поймете. Я решил сделать сборник книг. И в Delphi добавил список книг (в...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru