Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Графика в Турбо С 
:(
    Опции темы
dima_mak
  Дата 6.7.2004, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист любитель
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 25.5.2004

Репутация: нет
Всего: нет



Не мог бы кто нибудь объяснить мне основы работы с графикой. Мне нужно загрузить БМП картинку и покахать её на экране, но мне не нужен просто кусок кода, а так что бы я все понимал. Буду признателен за объяснения.
PM MAIL   Вверх
mr.DUDA
Дата 6.7.2004, 23:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 25
Всего: 232



Если я правильно понимаю, то речь идёт о Borland C++ под ДОС ? Тогда можно воспользоваться BGI, выставить какой-нибудь видеорежим (из тех, которые BGI позволяет) - например, 640x480x4bit, загрузить картинку (fopen, fread, fclose; формат BMP подробно описан в MSDN), распихать заголовок BMP по переменным и получить ширину, высоту, кол-во бит на цвет; преобразовать из исходного формата (с учётом палитры, если она там есть) в конечный (т.е. в 4 бита на цвет wink.gif) и наконец - попиксельно (а как ещё ?) вывести картинку из загруженного массива на экран.

Если нужны более подробные инструкции - plz, прошу задавать более конкретные вопросы. Если не Borland C, тогда дело обстоит похуже, т.к. кроме BGI лично я под стандартных графических библиотек под ДОС не припоминаю...


--------------------
user posted image
PM MAIL WWW   Вверх
chaos
Дата 7.7.2004, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: 6
Всего: 44



Цитата(mr @ 6.7.2004, 23:47)
Если я правильно понимаю, то речь идёт о Borland C++ под ДОС ? Тогда можно воспользоваться BGI, выставить какой-нибудь видеорежим (из тех, которые BGI позволяет) - например, 640x480x4bit, загрузить картинку (fopen, fread, fclose; формат BMP подробно описан в MSDN), распихать заголовок BMP по переменным и получить ширину, высоту, кол-во бит на цвет; преобразовать из исходного формата (с учётом палитры, если она там есть) в конечный (т.е. в 4 бита на цвет wink.gif) и наконец - попиксельно (а как ещё ?) вывести картинку из загруженного массива на экран.

Если нужны более подробные инструкции - plz, прошу задавать более конкретные вопросы. Если не Borland C, тогда дело обстоит похуже, т.к. кроме BGI лично я под стандартных графических библиотек под ДОС не припоминаю...

тебе помощь еще нужна по BMP....?
PM WWW   Вверх
dima_mak
Дата 7.7.2004, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист любитель
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 25.5.2004

Репутация: нет
Всего: нет



Цитата(mr @ 6.7.2004, 23:47)
Если я правильно понимаю, то речь идёт о Borland C++ под ДОС ? Тогда можно воспользоваться BGI, выставить какой-нибудь видеорежим (из тех, которые BGI позволяет) - например, 640x480x4bit, загрузить картинку (fopen, fread, fclose; формат BMP подробно описан в MSDN), распихать заголовок BMP по переменным и получить ширину, высоту, кол-во бит на цвет; преобразовать из исходного формата (с учётом палитры, если она там есть) в конечный (т.е. в 4 бита на цвет wink.gif) и наконец - попиксельно (а как ещё ?) вывести картинку из загруженного массива на экран.

Если нужны более подробные инструкции - plz, прошу задавать более конкретные вопросы. Если не Borland C, тогда дело обстоит похуже, т.к. кроме BGI лично я под стандартных графических библиотек под ДОС не припоминаю...

Спасибо за ответ, но ты меня не правельно понял. То что ты написал я и сам понимаю. Я могу открыть БМП файл и распихать данные по переменным, но я не могу попиксельно засунуть файл на экран(не умею работать с экраном), тоесть куда нада пихать байты картинки, что бы они показывались на экране.
PM MAIL   Вверх
chaos
Дата 7.7.2004, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: 6
Всего: 44



Цитата(dima_mak @ 7.7.2004, 10:35)
Цитата(mr @ 6.7.2004, 23:47)
Если я правильно понимаю, то речь идёт о Borland C++ под ДОС ? Тогда можно воспользоваться BGI, выставить какой-нибудь видеорежим (из тех, которые BGI позволяет) - например, 640x480x4bit, загрузить картинку (fopen, fread, fclose; формат BMP подробно описан в MSDN), распихать заголовок BMP по переменным и получить ширину, высоту, кол-во бит на цвет; преобразовать из исходного формата (с учётом палитры, если она там есть) в конечный (т.е. в 4 бита на цвет  wink.gif) и наконец - попиксельно (а как ещё ?) вывести картинку из загруженного массива на экран.

Если нужны более подробные инструкции - plz, прошу задавать более конкретные вопросы. Если не Borland C, тогда дело обстоит похуже, т.к. кроме BGI лично я под стандартных графических библиотек под ДОС не припоминаю...

Спасибо за ответ, но ты меня не правельно понял. То что ты написал я и сам понимаю. Я могу открыть БМП файл и распихать данные по переменным, но я не могу попиксельно засунуть файл на экран(не умею работать с экраном), тоесть куда нада пихать байты картинки, что бы они показывались на экране.

Че вы мудрите?
Для вывода на экран используеся putpixel(x,y,color)
Все еще зависит от картинки, т.е. количество цветов используемое в BMP
если картинка 4битная все нормально, 8 битная нужно строить палитру, 16 и 24 битная нужно графический модуль vesa.bgi
PM WWW   Вверх
lynx_916
Дата 7.7.2004, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 316
Регистрация: 13.6.2004
Где: Молдова

Репутация: нет
Всего: 1



Цитата
графический модуль vesa.bgi

в Стандартном Борланде её нет.


Цитата
Borland C++ под ДОС

тема по-другому называется.





--------------------
Who dares, wins. (с) Solid Snake
PM MAIL ICQ YIM MSN   Вверх
chaos
Дата 7.7.2004, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: 6
Всего: 44



Цитата(lynx_916 @ 7.7.2004, 13:04)
Цитата
графический модуль vesa.bgi

в Стандартном Борланде её нет.


Цитата
Borland C++ под ДОС

тема по-другому называется.

Для особо знающих vesa.bgi для доса
PM WWW   Вверх
dima_mak
Дата 7.7.2004, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист любитель
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 25.5.2004

Репутация: нет
Всего: нет



А как мне узнать цвет пикселя который я вывожу. Если можно можешь дать пример?
PM MAIL   Вверх
lynx_916
Дата 7.7.2004, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 316
Регистрация: 13.6.2004
Где: Молдова

Репутация: нет
Всего: 1



для этого есть функция getpixel(int x,int y);

Это сообщение отредактировал(а) lynx_916 - 7.7.2004, 13:28


--------------------
Who dares, wins. (с) Solid Snake
PM MAIL ICQ YIM MSN   Вверх
dima_mak
Дата 7.7.2004, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист любитель
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 25.5.2004

Репутация: нет
Всего: нет



Кстати картинка 8 битная
Добавлено @ 13:27
Цитата(lynx_916 @ 7.7.2004, 13:24)
для этого есть функция getpixel();

getpixel() из файла??????????
PM MAIL   Вверх
lynx_916
Дата 7.7.2004, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 316
Регистрация: 13.6.2004
Где: Молдова

Репутация: нет
Всего: 1



нет.... просто задаёшь координаты точки, и функция возвращает цвет.


--------------------
Who dares, wins. (с) Solid Snake
PM MAIL ICQ YIM MSN   Вверх
chaos
Дата 7.7.2004, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: 6
Всего: 44



Цитата(dima_mak @ 7.7.2004, 13:14)
А как мне узнать цвет пикселя который я вывожу. Если можно можешь дать пример?

цВЕТ ПИкселя который ты выводишь ты в любом случае его знаешь ,т.к. ты его выводишь
PM WWW   Вверх
dima_mak
Дата 7.7.2004, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист любитель
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 25.5.2004

Репутация: нет
Всего: нет



Что то вы меня загрузили. cool.gif
Можно примерчик открытия БМП файла и вывода его первого пикселя? notify.gif

Это сообщение отредактировал(а) dima_mak - 7.7.2004, 13:37
PM MAIL   Вверх
chaos
Дата 7.7.2004, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: 6
Всего: 44



Цитата(dima_mak @ 7.7.2004, 13:36)
Что то вы меня загрузили. cool.gif
Можно примерчик открытия БМП файла и вывода его первого пикселя? notify.gif

Дело в том что бы вывести первый пиксел нужно знать где начинается изображение, а что бы это узнать необходимо знать количество цветов на пиксел
Т.е. если на один пиксел приходится 16 бит то изображение начинается 54 байта файла
Необходимо знать сколько бит напиксел у твоего BMP файла
PM WWW   Вверх
dima_mak
Дата 7.7.2004, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист любитель
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 25.5.2004

Репутация: нет
Всего: нет



Цитата(dima_mak @ 7.7.2004, 13:25)
Кстати картинка 8 битная
Добавлено @ 13:27
Цитата(lynx_916 @ 7.7.2004, 13:24)
для этого есть функция getpixel();

getpixel() из файла??????????

я же написал 8 битовая картинка
PM MAIL   Вверх
chaos
Дата 7.7.2004, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: 6
Всего: 44



если 8бит то,
54 байта заголовок(0-53) изображения,
далее идет таблица цветов для построения палитры 256(0-255) цветов * 3 (RGB - состовляющие) итого 768 байт далее идет само изображение

PM WWW   Вверх
dima_mak
Дата 7.7.2004, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист любитель
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 25.5.2004

Репутация: нет
Всего: нет



Можно примерчик(желательно с построением палитры)? плиз, если не затруднит.

Это сообщение отредактировал(а) dima_mak - 7.7.2004, 16:10
PM MAIL   Вверх
dima_mak
Дата 8.7.2004, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист любитель
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 25.5.2004

Репутация: нет
Всего: нет



Хаос ты где пропал????
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1877 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.