|
|
|
Как передать скриншот (принтскрин) по TCP ?25.06.2013, 16:38. Показов 8067. Ответов 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 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|