|
|
|
Как передать скриншот (принтскрин) по TCP ?25.06.2013, 16:38. Показов 8019. Ответов 45
Метки нет (Все метки)
Всем привет!
Интересует 2 вещи:
0
|
|
| 25.06.2013, 16:38 | |
|
Ответы с готовыми решениями:
45
Как сделать скриншот и передать его? Socket TCP на C++. Как передать данные в формате JSON Как сделать принтскрин из программы?? |
|
|
||||
| 25.06.2013, 18:58 | ||||
|
алгоритм передачи-приема
0
|
||||
|
es geht mir gut
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
|
||
| 25.06.2013, 19:31 | ||
|
Все остальные существующие в проекте преобразования крайне неэффективны(слишком долго выполняются), не рекомендую их использовать. Хотя если требуется сделать снимок небольшой части экрана, то можно попробовать.
2
|
||
|
Заблокирован
|
|
| 25.06.2013, 21:26 | |
|
Вирусы пишем.
0
|
|
|
|
|
| 25.06.2013, 22:17 [ТС] | |
|
@SoftIce,
а могли бы привести пользовательский тип DEVMODE ? @Pro_grammer, сам алгоритм передачи файла у меня наработан, и кстати при использовании TCP у меня скорость передачи файлов не привышает 100кб/с поэтому нужно как-то исключать такой принцип передачи как : передал- получил ответ - передал..
0
|
|
|
es geht mir gut
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
|
|||||||
| 25.06.2013, 22:20 | |||||||
0
|
|||||||
|
|
|
| 25.06.2013, 22:35 [ТС] | |
|
@SoftIce, да действительно очень долго выполняется.
Но в любом случае спасибо за пример. Наверно даже быстрее сохранить изображение в файл и передать уже его.. Добавлено через 2 минуты @inv.DS, ну почему сразу вирусы? =) Просто расширяю свой кругозор. В основном сейчас пишу разные сетевые программки. Еще не пробовал передачу изображения с вебки и передачу звука с микрофона.
0
|
|
|
Заблокирован
|
|
| 25.06.2013, 23:20 | |
|
0
|
|
|
Заблокирован
|
||||||||
| 26.06.2013, 07:20 | ||||||||
![]()
1
|
||||||||
|
|
|
| 01.07.2013, 11:37 [ТС] | |
|
inv.DS,
Может с принтскрином есть тоже что-нибудь в таком духе ?? Чет всё что угодно перепробовал, либо с экрана очень долго забирается инфа о цветах пикселей, либо наоборот тормоза при передаче и отображении пикселей .. Короче как получить принтскрин не используя буфер я понял.. а вот как перекинуть через TCP изображение на другой комп и оперативно отобразить - никак не врублюсь.
0
|
|
|
Заблокирован
|
|
| 01.07.2013, 12:49 | |
|
Bati4eli, А не проще сделать программу сервер и программу клиент и на сервере при отправке команды нажать клавишу принтскрин программно ?
0
|
|
|
|
||||||
| 01.07.2013, 17:38 [ТС] | ||||||
|
inv.DS,
то ли я дурак, то ли лыжи не едут.. У меня таких недопрограмм куча.. вы хотите сказать, что нужно скопировать экран в буфер и потом тупо передать его таким образом:
Но хоть убейте меня.. но не пашет такой метод у меня.
0
|
||||||
|
Заблокирован
|
|
| 01.07.2013, 18:34 | |
|
Bati4eli, Антивирусы, файрволы, а что если сохранить файл и его потом переслать?
0
|
|
|
|
|
| 02.07.2013, 09:18 [ТС] | |
|
inv.DS, для разовой передачи подойдет.. а вот для постоянной передачи этот принцип так себе, потому что скриншот в формате bmp весит порядка 5 мб. Следовательно что-бы показывать хотябы один кадр в секунду, потребуется скорость соединения не менее 40мбит/с
0
|
|
|
Заблокирован
|
|
| 02.07.2013, 09:26 | |
|
Bati4eli, Сохрани в .JPG какие проблемы то!?
0
|
|
|
|
||
| 02.07.2013, 11:26 | ||
|
- Делим экран на квадраты ( или снимаем скрин по квадратам или делим скрин после) - Каждый следующий скрин сравниваем с предыдущим - Если на экране в какой то части изменения, то передаём на принимающий комп только те квадраты, которые изменились - Перед передачей информацию упаковываем( или сжимаем JPG, PNG) - На принимающем компе в изображение вставляем только эти квадраты, не изменяя остального изображения. Этот метод позволяет существенно снизить нагрузку на трафик, но увеличивает на процессор. Сравнение изображений и их сжатие займет определенное время. Метод подходит идеально для ЯП, которые могут работать в многопоточном режиме - т.е пока часть квадратов сравнивается, сравненные уже передаются, а новые квадраты скриншотятся. На VB6 всё придется делать последовательно. Но если изображение на экране будет сменятся не очень быстро, то думаю VB6 справится.
2
|
||
|
|
|
| 02.07.2013, 11:37 [ТС] | |
|
inv.DS, находил в инете классы для сохранения в JPG, да они сохраняют скрины в файлы весом 600-800 кбайт, но поскольку они занимаются сжатием, этот процесс становиться не быстрее передачи BMP..
Добавлено через 7 минут Pro_grammer, Я тоже думаю что нужно разбивать скрин на куски и сравнивать их .. но в таком случае нужно использовать функции GetPixel и SetPixel, я их пробовал но что-то их скорость меня не вдохновила на дальнейшее их использование. Может есть какие наброски на практике ?
0
|
|
|
Модератор
|
||
| 02.07.2013, 12:20 | ||
|
0
|
||
|
|
||||||
| 02.07.2013, 12:55 | ||||||
Сообщение было отмечено The trick как решение
Решение
Если есть доступ к данным объекта в памяти, то можно сделать проще. Скопировать область изображения куда-то и вычислить её CRC32, к примеру. То же проделать со сравниваемым участком, потом сравнить их CRC32, если совпадают, то скорее всего изображения одинаковые, если нет, то разные. Можно использовать и другие алгоритмы.
Я такой способ использовал в более простом случае, могу дать простую функцию для вычисления CRC8:
Добавлено через 18 минут Не понял как тут редактировать сообщение... хотел добавить по поводу сжатия в JPEG. Это можно сделать при помощи функций GDI+. J, обёртку можно найти тут: [VB6] GDI+ Usage & Samples. Добавлено через 7 минут Да, кстати, сжимать кадры jpeg'ом смысла нет, т.к. при восстановлении картинки будут видны швы, т.к. jpeg преобразует изображение, сжимая с потерями. Вот png можно использовать.
0
|
||||||
|
1492 / 587 / 107
Регистрация: 26.03.2012
Сообщений: 1,039
|
|||
| 02.07.2013, 15:46 | |||
|
0
|
|||
| 02.07.2013, 15:46 | |
|
Помогаю со студенческими работами здесь
20
Передать по TCP Передать int по TCP
Передать xml файл по tcp Передать массив byte по TCP Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
|
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|