![]() |
|
Модераторы: Snowy, Alexeis, MetalFan |
![]()
|
|
| Fima |
|
|||
|
Unregistered |
Программа должна сохранять снимки экрана на жесткий диск в формате jpg через определенные промежутки времени...
Подскажите пожалуйста наиболее эффективный способ сохранять снимки. Тот, которым я пользуюсь, жутко тормозит во время записи файла. _____________ Delphi6. |
|||
|
||||
| dm9 |
|
||||
![]() Дмитрий Копытин ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 3876 Регистрация: 22.7.2002 Где: Москва Репутация: 3 Всего: 137 |
Попробуй так:
Добавлено @ 23:35 В случае, когда снимки надо делать периодически, логично делать так: периодически выполняешь
А остальное выполняешь 1 раз - при старте и завершении программы. |
||||
|
|||||
| Fima |
|
|||
|
Unregistered |
Попробуй во время этого подвигать окна!!!
Всё просто подвисает. А если ещё и периодически фотографировать........ Но я попробовал сохранять не в Jpg, а в bmp. Тормозов вообще не было. Значит глючит только когда конвертируется в Jpg. А если это делать как-нибудь отдельно от процедуры фотографирования... |
|||
|
||||
| Pakshin A. S. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: нет Всего: 61 |
Может поток организовать...
|
|||
|
||||
| x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: нет Всего: 22 |
я делаю обычно так:
т.е. в самом обработчике ничего не создаётся, никаких левых канвасов, дескрипторов, битмапов и пр. быстрее скопировать экран нельзя. но тормоза всё равно будут: если непрерывно таскать форму по экрану, можно заметить, как она на доли секунды стопориться в момент скриншота. я сам не пробовал, но мысль Pakshin A. S.'а мне представляется очень здравой. -------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
| Pakshin A. S. |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: нет Всего: 61 |
Спасибо... парвый раз прочел
|
||||
|
|||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 2 Всего: 64 |
Это не есть правильно. Где ReleaseDC? Получая ссылку на контекст устройства ее обязательно нужно освобождать иначе будет утечка ресурсов)) Это сообщение отредактировал(а) <Spawn> - 9.5.2004, 13:33 -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| cardinal |
|
||||||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: нет Всего: 99 |
А вот такая мысль: У вас же делаются фотки с таким-то интервалом, а потом старый файл заменяется новым. А зачем его записывать то каждый раз. Записать на диск его можно и при закрытии программы, нет?
а это при закрытии:
А вообще помоему Timer и поток это не одно и тоже. Я бы попробовал с потоком. -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
||||||
|
|||||||
| Pakshin A. S. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: нет Всего: 61 |
Вот ещё в тему накапал:
1) Получим дескриптор рабочего стола GetDesktopWindows 2) GetDC() для получения дескриптора контекста экрана (HDC) 3) Испольцуя TCanvas.Handle в качестве HDC, можно при помощи WinAPI реализовать функцию рисования или присвоить HDC свойству Hanble непосредственно при ссоздании TCanvas 4) Не забыть освобождить HDC Может не то, но в книге это звучит как "Моментальный снимок с экрана" |
|||
|
||||
| Fima |
|
|||
|
Unregistered |
Нет. У меня каждая фотка сохраняется под новым именем (число и время снимка). А вот в варианте у x77 подвисаний почти не было. Но фотка сохранялась размером 3 мегабайта каждая! Это же тот самый bmp! Проблемма тормозов давно уже ясна -- трудоёмкое сжатие bmp в jpg. Но как сжать так, чтобы не было подвисания? Может как-нибудь отдельно, не в самой процедуре фотографирования? |
|||
|
||||
| x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: нет Всего: 22 |
<Spawn>, меня очень долго мучил этот вопрос: будет прога течь, или нет
Добавлено @ 23:06 Fima. в моём варианте битпам храниться глобально. т.е. ты можешь повесть на форму второй таймер, который будет создавать свой битмап, копировать в него "сохранённый" и писать на диск. а первый таймер будет просто совать в битмап скриншот. -------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
| Pakshin A. S. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: нет Всего: 61 |
Pegas За то что-ли унизил меня??? |
|||
|
||||
| x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: нет Всего: 22 |
Pakshin A. S., а ты его "унизь".
-------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
| Pakshin A. S. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: нет Всего: 61 |
Зы... будем друг другу репутацию инижать; интересно, какая минимальная репутация?
|
|||
|
||||
| Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: нет Всего: 154 |
-------------------- |
|||
|
||||
| Fima |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 9.5.2004 Репутация: нет Всего: нет |
Вот весь код моей программы (может быть и кривой, но, как сумел... не осуждайте):
И всё равно тормозит при сжатии в jpg! Может быть есть другие способы сделать это? Я в отчаянии |
||||
|
|||||
| Pakshin A. S. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: нет Всего: 61 |
А для чего второй таймер?
Корректней, на мой взгляд, всё в один поставить... и вообще я за поток |
|||
|
||||
| Fima |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 9.5.2004 Репутация: нет Всего: нет |
Как бы этот поток организовать...?
|
|||
|
||||
| Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: нет Всего: 154 |
Смотри в справке по Дельфи TThread. И еще FAQ.
-------------------- |
|||
|
||||
![]()
|
| Правила форума "Delphi: Звук, графика и видео" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |