|
1 / 1 / 0
Регистрация: 11.07.2015
Сообщений: 40
|
|
Отображение изображения из потока22.01.2017, 20:26. Показов 3453. Ответов 64
Метки нет (Все метки)
Приветствую всех!
Может быть кто сталкивался с таким моментом: извне идёт поток (по USB, к примеру), этот поток обрабатывается и выводится изображение на форму или Image, PaintBox... Проблема вот в чём - изначально неизвестно какой длины будут данные и, естественно не известно какой "длины" будет изображение. Как в этом случае сделать так, чтобы генерируемое изображение, уходя за нижнюю границу контейнера начинало смещаться вверх? Как бы прокручивалось до окончания приема данных...
0
|
|
| 22.01.2017, 20:26 | |
|
Ответы с готовыми решениями:
64
Создание потока,отображение на прогресс баре Передача изображения в виде потока Отображение RTSP потока видео на iOS устройствах |
|
Модератор
3410 / 2182 / 354
Регистрация: 13.01.2012
Сообщений: 8,476
|
|
| 25.01.2017, 06:14 | |
|
gumi250, где именно тут ошибка? Картинка монотонно растёт. Генератор как я понял делает несколько градиентов
0
|
|
|
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
|
|
| 25.01.2017, 07:09 | |
|
vxg, конечно я не знаю, что дает генератор. Но меня смущает две вещи: 1-пилооборазный профиль вдоль оси х; 2 - пол картинки выглядят полосами, а вторая половина просто белая.
0
|
|
|
Модератор
3410 / 2182 / 354
Регистрация: 13.01.2012
Сообщений: 8,476
|
|
| 25.01.2017, 07:59 | |
|
gumi250, ну я подумал что полосы - это генератор, а белые "уши" - это потому что поток как сказал автор пока идёт не весь (ширину наверное очень хотелось выставить в 1024, а генератор наверное столько данных не потянул). Алхимия)
0
|
|
|
1 / 1 / 0
Регистрация: 11.07.2015
Сообщений: 40
|
|
| 25.01.2017, 10:51 [ТС] | |
|
День добрый!
Я поясню, почему всё отображается сейчас так. Для получения всего спектра оттенков серого нужно заполнить число от 0b00000000 до 0b00111111 с шагом 1. Для теста мне это не нужно, поэтому генератор создаёт эту градацию с шагом 4. Вот поэтому на картинке при большом увеличении видно переходы. И генератор не выдаёт сейчас всю ширину картинки - только часть, поэтому справа белое поле...)
0
|
|
|
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
|
||||||
| 25.01.2017, 12:02 | ||||||
|
Меня смущает не число цветов, а пила. INA007, вы уверены, что в ширине должно быть 10 периодов пилы, а скажем не 1 период? И разве вторая половина картинки не должна быть черной, а не белой?
Да и ваш алгоритм перевода данных в цвет мне кажется странным.
0
|
||||||
|
1 / 1 / 0
Регистрация: 11.07.2015
Сообщений: 40
|
|||||||||||
| 25.01.2017, 15:50 [ТС] | |||||||||||
|
Это всё пока что только для теста...)
У меня тут на следующем этапе другая проблема вылезла: нужно писать данные с USB, который работает как виртуальный COM порт в бинарный файл и из файла тут же читать данные и преобразовывать в картинку. Я создаю бинарный файл:
Этот код работает в отдельном потоке. На этом этапе всё хорошо. В функции "Printing":
Выводится чёрное поле.. Причём, если сначала записать в файл, а потом читать, то картинка идёт правильно.
0
|
|||||||||||
|
Модератор
3410 / 2182 / 354
Регистрация: 13.01.2012
Сообщений: 8,476
|
|
| 25.01.2017, 18:32 | |
|
INA007, зачем так?
0
|
|
|
1 / 1 / 0
Регистрация: 11.07.2015
Сообщений: 40
|
|
| 25.01.2017, 18:38 [ТС] | |
|
0
|
|
|
Модератор
3410 / 2182 / 354
Регистрация: 13.01.2012
Сообщений: 8,476
|
|
| 25.01.2017, 18:44 | |
|
INA007, в файл а потом из файла и файлом погоняем
0
|
|
|
1 / 1 / 0
Регистрация: 11.07.2015
Сообщений: 40
|
||
| 25.01.2017, 19:33 [ТС] | ||
|
Чтоб сырые данные были. Записывать всё это в файл и отдельным потоком отображать.
0
|
||
|
Модератор
3410 / 2182 / 354
Регистрация: 13.01.2012
Сообщений: 8,476
|
|
| 25.01.2017, 21:00 | |
|
INA007, записывать можно, но зачем из него брать в онлайне?
0
|
|
|
1 / 1 / 0
Регистрация: 11.07.2015
Сообщений: 40
|
||
| 25.01.2017, 21:49 [ТС] | ||
|
Добавлено через 7 минут Этот момент я уже решил. Файл пишется и читается одновременно. Вернее, последовательно - сначала пишется какая-то часть, потом начинает считываться. Тут ещё, понимаете в чём дело... Фреймы со спутника идут строками. В начале каждого фрейма идёт некая последовательность, типа синхронизации. Вообще, всё это передаётся в манчестере. Аппаратная часть позаботится о синхронизации самого потока, а вот синхронизировать строки, я подумал, что будет проще, если после записи в бинарный файл находить эту синхропоследовательность и рисовать строку, начиная с неё. Вот тут расписан формат этого потока: https://www.ncdc.noaa.gov/oa/p... sec4-1.htm Добавлено через 2 минуты Ведь спутник передаёт непрерывно картинку. И в какой момент он появится в зоне видимости и в какой момент его передачи аппаратная часть засинхрится и начнётся запись в файл просто неизвестно.
0
|
||
|
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
|
||
| 25.01.2017, 23:53 | ||
|
Я так понял проблема в том что данные могут начать поступать с середины строки. Просто начав получать данные ждите момент начала строки и начинайте писать.
1
|
||
|
1 / 1 / 0
Регистрация: 11.07.2015
Сообщений: 40
|
||
| 27.01.2017, 00:48 [ТС] | ||
|
Спутник передаёт не только картинку - там куча служебной информации. Поэтому я и пытаюсь разделить задачу между компом и микроконтроллером. Вот тут полное описание протокола HRPT: https://www.ncdc.noaa.gov/oa/p... sec4-1.htm
0
|
||
|
1 / 1 / 0
Регистрация: 11.07.2015
Сообщений: 40
|
|
| 29.01.2017, 11:25 [ТС] | |
|
Добрый день!
В общем, всё было бы хорошо, ка бы не одна фича...) Почему-то при прорисовке картинки приём данных и сама прорисовка может просто остановиться, если щёлкнуть по окну программы мышкой или попытаться сдвинуть окно... Сам софт при этом не виснет...
0
|
|
|
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
|
|
| 29.01.2017, 11:39 | |
|
на 99% это связано не с кодом прорисовки, а с кодом получения данных.
0
|
|
|
Модератор
3410 / 2182 / 354
Регистрация: 13.01.2012
Сообщений: 8,476
|
|
| 29.01.2017, 11:42 | |
|
INA007, вариант - код получения данных скорее всего в потоке интерфейса, например в таймере, когда вы тащите форму его блокирует
0
|
|
|
1 / 1 / 0
Регистрация: 11.07.2015
Сообщений: 40
|
||||||
| 29.01.2017, 12:38 [ТС] | ||||||
Если закомментировать Synchronize(Print);, то данные идут и пишутся в файл отлично и без сбоев. Получение данных - в отдельном потоке.
0
|
||||||
|
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
|
||||||
| 29.01.2017, 15:26 | ||||||
|
использовать vcl не в основном потоке нельзя, т.е. строки
Функция Print вызываемая в Synchronize делается в основном потоке, поэтому и приостанавливается.
0
|
||||||
|
1 / 1 / 0
Регистрация: 11.07.2015
Сообщений: 40
|
|||
| 29.01.2017, 15:55 [ТС] | |||
|
Функция Print принадлежит ReadThread - это, я так подумал, отдельный ведь поток? Или я что-то напутал?
0
|
|||
| 29.01.2017, 15:55 | |
|
Отображение изображения Отображение изображения Отображение изображения Отображение изображения Отображение изображения Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version
Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
|
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер
На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|