![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| dima_mak |
|
|||
|
Программист любитель ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 25.5.2004 Репутация: нет Всего: нет |
Не мог бы кто нибудь объяснить мне основы работы с графикой. Мне нужно загрузить БМП картинку и покахать её на экране, но мне не нужен просто кусок кода, а так что бы я все понимал. Буду признателен за объяснения.
|
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 25 Всего: 232 |
Если я правильно понимаю, то речь идёт о Borland C++ под ДОС ? Тогда можно воспользоваться BGI, выставить какой-нибудь видеорежим (из тех, которые BGI позволяет) - например, 640x480x4bit, загрузить картинку (fopen, fread, fclose; формат BMP подробно описан в MSDN), распихать заголовок BMP по переменным и получить ширину, высоту, кол-во бит на цвет; преобразовать из исходного формата (с учётом палитры, если она там есть) в конечный (т.е. в 4 бита на цвет
Если нужны более подробные инструкции - plz, прошу задавать более конкретные вопросы. Если не Borland C, тогда дело обстоит похуже, т.к. кроме BGI лично я под стандартных графических библиотек под ДОС не припоминаю... -------------------- ![]() |
|||
|
||||
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 6 Всего: 44 |
тебе помощь еще нужна по BMP....? |
|||
|
||||
| dima_mak |
|
|||
|
Программист любитель ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 25.5.2004 Репутация: нет Всего: нет |
Спасибо за ответ, но ты меня не правельно понял. То что ты написал я и сам понимаю. Я могу открыть БМП файл и распихать данные по переменным, но я не могу попиксельно засунуть файл на экран(не умею работать с экраном), тоесть куда нада пихать байты картинки, что бы они показывались на экране. |
|||
|
||||
| chaos |
|
||||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 6 Всего: 44 |
Че вы мудрите? Для вывода на экран используеся putpixel(x,y,color) Все еще зависит от картинки, т.е. количество цветов используемое в BMP если картинка 4битная все нормально, 8 битная нужно строить палитру, 16 и 24 битная нужно графический модуль vesa.bgi |
||||
|
|||||
| lynx_916 |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 316 Регистрация: 13.6.2004 Где: Молдова Репутация: нет Всего: 1 |
в Стандартном Борланде её нет.
тема по-другому называется. -------------------- Who dares, wins. (с) Solid Snake |
||||
|
|||||
| chaos |
|
||||||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 6 Всего: 44 |
Для особо знающих vesa.bgi для доса |
||||||
|
|||||||
| dima_mak |
|
|||
|
Программист любитель ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 25.5.2004 Репутация: нет Всего: нет |
А как мне узнать цвет пикселя который я вывожу. Если можно можешь дать пример?
|
|||
|
||||
| lynx_916 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 316 Регистрация: 13.6.2004 Где: Молдова Репутация: нет Всего: 1 |
для этого есть функция getpixel(int x,int y);
Это сообщение отредактировал(а) lynx_916 - 7.7.2004, 13:28 -------------------- Who dares, wins. (с) Solid Snake |
|||
|
||||
| dima_mak |
|
|||
|
Программист любитель ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 25.5.2004 Репутация: нет Всего: нет |
Кстати картинка 8 битная
Добавлено @ 13:27
getpixel() из файла?????????? |
|||
|
||||
| lynx_916 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 316 Регистрация: 13.6.2004 Где: Молдова Репутация: нет Всего: 1 |
нет.... просто задаёшь координаты точки, и функция возвращает цвет.
-------------------- Who dares, wins. (с) Solid Snake |
|||
|
||||
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 6 Всего: 44 |
цВЕТ ПИкселя который ты выводишь ты в любом случае его знаешь ,т.к. ты его выводишь |
|||
|
||||
| dima_mak |
|
|||
|
Программист любитель ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 25.5.2004 Репутация: нет Всего: нет |
Что то вы меня загрузили.
Можно примерчик открытия БМП файла и вывода его первого пикселя? Это сообщение отредактировал(а) dima_mak - 7.7.2004, 13:37 |
|||
|
||||
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 6 Всего: 44 |
Дело в том что бы вывести первый пиксел нужно знать где начинается изображение, а что бы это узнать необходимо знать количество цветов на пиксел Т.е. если на один пиксел приходится 16 бит то изображение начинается 54 байта файла Необходимо знать сколько бит напиксел у твоего BMP файла |
|||
|
||||
| dima_mak |
|
||||
|
Программист любитель ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 25.5.2004 Репутация: нет Всего: нет |
я же написал 8 битовая картинка |
||||
|
|||||
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 6 Всего: 44 |
если 8бит то,
54 байта заголовок(0-53) изображения, далее идет таблица цветов для построения палитры 256(0-255) цветов * 3 (RGB - состовляющие) итого 768 байт далее идет само изображение |
|||
|
||||
| dima_mak |
|
|||
|
Программист любитель ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 25.5.2004 Репутация: нет Всего: нет |
Можно примерчик(желательно с построением палитры)? плиз, если не затруднит.
Это сообщение отредактировал(а) dima_mak - 7.7.2004, 16:10 |
|||
|
||||
| dima_mak |
|
|||
|
Программист любитель ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 25.5.2004 Репутация: нет Всего: нет |
Хаос ты где пропал????
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |