OSDev
http://osdev.ru/

Вывод изображения bmp
http://osdev.ru/viewtopic.php?f=6&t=1886
Страница 1 из 2

Автор:  grenders22 [ 13 мар 2018, 20:29 ]
Заголовок сообщения:  Вывод изображения bmp

Добрый вечер! Спасибо всем большое за помощь, у меня остался лишь один вопрос, и это точно с:

Нет желания прямо сейчас "делать" файловую систему, но есть желание вывести изображение на экран. Можно ли это реализовать и как?

Автор:  SII [ 13 мар 2018, 20:39 ]
Заголовок сообщения:  Re: Вывод изображения bmp

Определить массив-константу, содержащий требуемое изображение, и скопировать его в видеопамять.

Автор:  grenders22 [ 13 мар 2018, 20:58 ]
Заголовок сообщения:  Re: Вывод изображения bmp

Вы подразумеваете массив пикселей?

Автор:  SII [ 13 мар 2018, 21:16 ]
Заголовок сообщения:  Re: Вывод изображения bmp

По сути, да. При желании тем же путём можно и BMP впихнуть, и JPEG, и что душе угодно.

Автор:  grenders22 [ 13 мар 2018, 21:21 ]
Заголовок сообщения:  Re: Вывод изображения bmp

Понял, Спасибо. А какой самый быстрый способ получить этот массив? Наверное написать прогу для получения списка пикселей, или же есть уже методы побыстрее?))

Автор:  SII [ 13 мар 2018, 22:07 ]
Заголовок сообщения:  Re: Вывод изображения bmp

Ну, кто-нибудь, может, уже написал и выложил такое... А так, да -- написать прогу.

Автор:  Himik [ 13 мар 2018, 23:01 ]
Заголовок сообщения:  Re: Вывод изображения bmp

Здесь есть несколько ответов на английском, надеюсь разберёшься
https://stackoverflow.com/questions/870 ... code-array
Например в Linux есть утилита
xxd -i ФАЙЛ >РЕЗУЛЬТАТ
которая преобразует байты файла в исходник на C
Код:
unsigned char temp[] = {
  0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x21,
  0x0a
};
unsigned int temp_len = 13;


Либо скомпилировать несколько примеров, которые делают тоже самое.

Автор:  grenders22 [ 14 мар 2018, 13:34 ]
Заголовок сообщения:  Re: Вывод изображения bmp

Himik писал(а):
Здесь есть несколько ответов на английском, надеюсь разберёшься
https://stackoverflow.com/questions/870 ... code-array


Да, действительно, тут все описано хорошо, но дальше я встал в тупик. Снова. Как быть с этим массивом и получить из него долгожданные пиксели? И как поступить оптимальнее? Ведь 1024х768 слишком долгий цикл получится..

Автор:  Yoda [ 14 мар 2018, 15:32 ]
Заголовок сообщения:  Re: Вывод изображения bmp

Вот (во вложении) программа для конвертации двоичного файла в код. В архиве исходник и скомпилированный файл.

Вложения:
Комментарий к файлу: Конвертор двоичного файла в массив C.
bin2c.zip [2.74 КБ]
Скачиваний: 120

Автор:  pavia [ 14 мар 2018, 17:02 ]
Заголовок сообщения:  Re: Вывод изображения bmp

https://upload.wikimedia.org/wikipedia/ ... Format.png

BMP простой формат там заголовок и массив пикселей. Вам ещё потребуется на всякий случай конвертер 24 в 32 бита.

Цитата:
И как поступить оптимальнее? Ведь 1024х768 слишком долгий цикл получится..

Нетак уж это и долго. Это если грубо говоря 1 миллион машинных инструкций или грубо говоря 1 мс (1000 FPS). Так что это недолгий цикл.
Перепишете на SSE будет ускорите в 4 а может и более раз. И да не забудьте, что SSE надо включить вначале.

Страница 1 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/