Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
1 / 1 / 0
Регистрация: 11.07.2015
Сообщений: 40

Отображение изображения из потока

22.01.2017, 20:26. Показов 3445. Ответов 64
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую всех!

Может быть кто сталкивался с таким моментом: извне идёт поток (по USB, к примеру), этот поток обрабатывается и выводится изображение на форму или Image, PaintBox...
Проблема вот в чём - изначально неизвестно какой длины будут данные и, естественно не известно какой "длины" будет изображение.
Как в этом случае сделать так, чтобы генерируемое изображение, уходя за нижнюю границу контейнера начинало смещаться вверх? Как бы прокручивалось до окончания приема данных...
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.01.2017, 20:26
Ответы с готовыми решениями:

Создание потока,отображение на прогресс баре
как создать поток,задать ему определенный приоритет и отобразить процесс выполнения в прогресс баре? Прошу,помогите

Передача изображения в виде потока
Подскажите пожалуйста. Моя страница обрабатывает изображение и полученное изображение должно передаватся ответом в виде потока и может...

Отображение RTSP потока видео на iOS устройствах
Доброго времени суток. Мне требуется отобразить на экране телефона видео, которое вещается из интернета по RTSP протоколу. Стандартными...

64
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
23.01.2017, 17:08
Студворк — интернет-сервис помощи студентам
А как вы вообще сохраняете получаемые данные? Т.е. под них нужно выделить некий кусок памяти. Но сложность в том, что размер этого куска неизвестен заранее. И как вы поступаете? Кусок памяти какого размера вы выделяете?

Добавлено через 13 минут
Вопрос 3: С какой скоростью поступают данные?
0
Модератор
 Аватар для vxg
3410 / 2182 / 354
Регистрация: 13.01.2012
Сообщений: 8,476
23.01.2017, 17:37
INA007, может уже предлагали, но разве не так:
-берем ScrollBox
-кладем в него Image
-устанавливаем у Image AutoSize = true
-когда прилетает первая строка (или N строк) делаем Image1->Picture->Bitmap->Width = 1024 - теперь у нас есть ширина
-потом просто делаем Image1->Picture->Bitmap->Height += N - теперь мы увеличили высоту - Image расширится на заданную величину без изменения более раннего содержимого, а ScrollBox позволит нам просматривать всю картинку
-кладем в Image1->Picture->Bitmap эти самые строки хоть по точкам хоть через ScanLine
0
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
23.01.2017, 18:25
vxg, А масштаб? У вас он будет всегда 1:1. Т.е. если картинка скажем 3000х10000, окошко как не растягивай, а во всю ширину картинки не растянешь. Да и не всегда хочется иметь окно во весь экран.
0
Модератор
 Аватар для vxg
3410 / 2182 / 354
Регистрация: 13.01.2012
Сообщений: 8,476
23.01.2017, 18:43
gumi250, картинка в ScrollBox поэтому всегда можно панорамировать куда надо. если высота будет 1 млн километров то конечно могут быть проблемы с ресурсами.
0
1 / 1 / 0
Регистрация: 11.07.2015
Сообщений: 40
23.01.2017, 18:51  [ТС]
Цитата Сообщение от gumi250 Посмотреть сообщение
А как вы вообще сохраняете получаемые данные?
Сейчас их можно сохранить в обычном текстовом файле.
Вложения
Тип файла: rar 23.01.2017_14_33_NOAA17.rar (45.5 Кб, 2 просмотров)
0
1 / 1 / 0
Регистрация: 11.07.2015
Сообщений: 40
23.01.2017, 18:55  [ТС]
Цитата Сообщение от vxg Посмотреть сообщение
может уже предлагали, но разве не так:
Сейчас попробую ещё раз.
Быть может в прошлый раз что-то упустил. Я так делал уже в начале.

Добавлено через 1 минуту
Цитата Сообщение от gumi250 Посмотреть сообщение
А масштаб?
Ширина этого изображения 1024. А длина - как "карта ляжет"...)

Добавлено через 53 секунды
Цитата Сообщение от vxg Посмотреть сообщение
если высота будет 1 млн километров
Нет. Обычно файл 50-60Мб и картинка не такая большая.
0
1 / 1 / 0
Регистрация: 11.07.2015
Сообщений: 40
23.01.2017, 19:18  [ТС]
Цитата Сообщение от vxg Посмотреть сообщение
-потом просто делаем Image1->Picture->Bitmap->Height += N - теперь мы увеличили высоту - Image расширится на заданную величину без изменения более раннего содержимого, а ScrollBox позволит нам просматривать всю картинку
Так работает, но появляются белые полосы на картинке в момент изменения размера Image.
Миниатюры
Отображение изображения из потока  
0
Модератор
 Аватар для vxg
3410 / 2182 / 354
Регистрация: 13.01.2012
Сообщений: 8,476
23.01.2017, 19:21
INA007, белая ПОЛОСА может быть только внизу там где вы добавили строку и то лишь мгновение пока вы ее не заполнили или нет?
0
1 / 1 / 0
Регистрация: 11.07.2015
Сообщений: 40
23.01.2017, 20:26  [ТС]
Цитата Сообщение от vxg Посмотреть сообщение
белая ПОЛОСА может быть только внизу там где вы добавили строку и то лишь мгновение пока вы ее не заполнили или нет?
Нет, эти полосы уже не заполняются.
Видимо, данные проскакивают и не отображаются в момент, когда происходит увеличение высоты картинки.
0
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
23.01.2017, 23:46
нужен кусок кода где вы заполняете Image1 данными
0
1 / 1 / 0
Регистрация: 11.07.2015
Сообщений: 40
23.01.2017, 23:54  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
      Form1->Image1->Canvas->Pen->Width = 0;
      if(y1 > Form1->Image1->Height){
            Form1->Image1->Picture->Bitmap->Height += 10;
            //y1--;
           }
 
      while(i < (BUFSIZE/2)-1){
          data10b = bufrd[i]<<8;
          i++;
          data10b += bufrd[i];
          i++;
            Form1->Image1->Canvas->Pen->Color = RGB(data10b%256, data10b%256, data10b%256);
            Form1->Image1->Canvas->MoveTo(x,y);
            Form1->Image1->Canvas->LineTo(x1,y1);
 
            x=x1;
            y=y1;
            x1++;
      }
      i = 0;
      x=0;
      x1=0;
      y1++;
Коряво, конечно...)
0
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
24.01.2017, 00:24
C++
1
     if(y1 >= Form1->Image1->Height){  /// тут
Не хватает кусочка в начале где задается х, у, x1, y1
Но так все равно не делают.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Bmp=Image1->Picture->Bitmap;
Bmp->PixelFormat=pf24bit;
Bmp->Width=1024;
Bmp->Height=1000;
for(int y=0; y<Bmp->Height; y++)
{
    Byte* ptr=(Byte*)Bmp->ScanLine[y];
        int x3=0;
    for(int x=0; x<Bmp->Width; x++)
    {
        Byte Color;
        /// Тут нужно задать Color
        ptr[x3++]=Color;
        ptr[x3++]=Color;
        ptr[x3++]=Color;
    }
}
Как то так. Увеличение высоты добавте сами

Добавлено через 17 минут
А что дальше вы будете делать с сохраненной картинкой? Я в том смысле, есть какой то софт которым вы будете ее открывать и обрабатывать или вы сами собираетесь писать этот софт?
0
1 / 1 / 0
Регистрация: 11.07.2015
Сообщений: 40
24.01.2017, 10:00  [ТС]
Цитата Сообщение от gumi250 Посмотреть сообщение
А что дальше вы будете делать с сохраненной картинкой? Я в том смысле, есть какой то софт которым вы будете ее открывать и обрабатывать или вы сами собираетесь писать этот софт?
Картинка сохраняется в *.bmp , только разрешение там получается очень высокое. Спутники передают картинку с разрешением 1.1km/пикс. Не самое высокое, конечно, но всё же интересно. Тем более, что картинка идёт в реальном времени.
0
1 / 1 / 0
Регистрация: 11.07.2015
Сообщений: 40
24.01.2017, 10:07  [ТС]
Вот тут сохранённая картинка.
Можно посмотреть разрешение.
Вложения
Тип файла: rar 1.rar (15.7 Кб, 2 просмотров)
0
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
24.01.2017, 12:24
Ваше фото со спутника выглядит так? Это правильно?
Миниатюры
Отображение изображения из потока  
0
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
24.01.2017, 12:52
На сколько я понимаю подобные системы устроены иначе. Получаемые изображения с приборов, будь то фото со спутника или с микроскопа всегда храняться в исходном формате, в вашем случае это 10бит. При их обработке (например добавление яркости) всегда обрабатывается исходный формат, и уже результат обработки для отображения конвертится в бмп. Сами бмп картинки никто не редактирует, в них только конвертится результат обработки исходника. Потому что как минимум в вашем случае теряется 2 бита, да и фотошопы это проги для редактирования фоток с фотоаппарата, а не со спутника.
0
1 / 1 / 0
Регистрация: 11.07.2015
Сообщений: 40
24.01.2017, 16:48  [ТС]
Цитата Сообщение от gumi250 Посмотреть сообщение
Ваше фото со спутника выглядит так? Это правильно?
Это пока что с тестового генератора.
Данные передаются по USB как unsigned int, но значащие там только 10 бит, как положено.

Добавлено через 1 час 29 минут
Цитата Сообщение от gumi250 Посмотреть сообщение
Сами бмп картинки никто не редактирует, в них только конвертится результат обработки исходника.
Нет-нет... Эти картинки не редактируются никак - это не нужно.
Спутник передаёт изображение в 5-ти каналах, поэтому редактировать там нечего.

Добавлено через 1 час 41 минуту
В общем, пока что вот, что получилось: https://youtu.be/qTqQdKXBGjE
Идут не полные данные, поэтому картинка не на весь экран.
0
Модератор
 Аватар для vxg
3410 / 2182 / 354
Регистрация: 13.01.2012
Сообщений: 8,476
24.01.2017, 18:01
INA007, по-моему нормально так выводит. Когда ждать картинку со спутника)?
0
1 / 1 / 0
Регистрация: 11.07.2015
Сообщений: 40
24.01.2017, 20:19  [ТС]
Да, я тоже подумал пока так оставить, а после уже, когда реальная картинка прийдёт, тогда уже и корректировать, если понадобится.
Цитата Сообщение от vxg Посмотреть сообщение
по-моему нормально так выводит. Когда ждать картинку со спутника)?
;-)
Нуууу... ))) Ещё софт для декодера надо написать. Либо для STM32 на Си, либо для Altera на VHDL...
В общем, пока есть время - тружусь...)))
0
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
24.01.2017, 23:29
Цитата Сообщение от vxg Посмотреть сообщение
по-моему нормально так выводит. Когда ждать картинку со спутника)?
А по моему ерунда вышла. Я не знаю что у вас за генератор, но опыт мне подсказывает, что подобные картинки результат ошибки. Ищите ошибку.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.01.2017, 23:29

Отображение изображения
Как отобразить Png рисунок средствами direct3d(не directDraw).

Отображение изображения
У меня есть изображение размерность 100 на 50 пикселей. В форме создаю label, в свойствах &quot;image&quot; выбираю свое изображение, задаю...

Отображение изображения
Почему изображение не становится по правому краю? &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;Maksimov&lt;/title&gt; &lt;meta...

Отображение изображения
Всем привет. Как добавить загруженное изображение в приложение? if (openFileDialog1.ShowDialog() ==...

Отображение изображения
Доброго времени суток. Есть форма с загрузкой изображения, как сделать что бы фото которое человек хочет загрузить сразу отображалось на...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
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. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru