Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вывод BMP файла 
:(
    Опции темы
UserNet
Дата 7.11.2008, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Мне нужно вывести bmp файл 256 цветов, на экран используя только функцию putpixel
Вот пример кода, но файл выводится с потерей цветов, вопрос что не так?
Код


    COLORREF a[256];
    int **tmp;
if ((inFILE = fopen(FileItog, "rb"))== NULL)
    {
    printf("Cannot open input file.\n");
    exit(EXIT_FAILURE);
    }
    fread(&bfh ,sizeof(bfh),1,inFILE);
    fread(&bih,sizeof(bih),1,inFILE);
 
    for(j=0;j<(bfh.bfOffBits-54)/4;j++)
    {
        fread(&palette,sizeof(palette),1,inFILE);
        a[j]=RGB(palette.rgbRed,palette.rgbGreen,palette.rgbBlue);
    
    }
    int maxi=(bih.biWidth+3)/4*4;
    hdcScreen = GetDC(hwnd);
    i=0;j=0;
    while (!feof(inFILE))
    {
        fread(&r,sizeof(r),1,inFILE);
        SetPixel(hdcScreen,i+100,571-j,a[r]);
        if(i>=maxi){i=0;j++;}
        i++;
      
    }
     ReleaseDC(hwnd,hdcScreen);
    fclose(inFILE);



Это сообщение отредактировал(а) UserNet - 7.11.2008, 15:16
PM MAIL   Вверх
UserNet
Дата 10.11.2008, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Блин решение так и не нашёл, видимо такой фигнёй никто не занимается, единственное что странно когда я поменял, R G B на B R G,
Код

 // a[j]=RGB(palette.rgbRed,palette.rgbGreen,palette.rgbBlue);
  a[j]=RGB(palette.rgbBlue,palette.rgbGreen,palette.rgbRed);

 стало лучше выводится лучше, но слишком много красной компоненты избавится от неё никак. 
PM MAIL   Вверх
Alexeis
Дата 10.11.2008, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Цитата(UserNet @  10.11.2008,  20:27 Найти цитируемый пост)
единственное что странно когда я поменял, R G B на B R G,
Выделить всёкод C++

  Да все верно цвета идут в обратном порядке.

Добавлено через 3 минуты и 57 секунд
Насколько я помню винда портит первые 16 цветов и заменяет их своими потому может быть несоответствие. 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
UserNet
Дата 10.11.2008, 21:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата

Насколько я помню винда портит первые 16 цветов и заменяет их своими потому может быть несоответствие.

А где-то можно прочитать про это?
PM MAIL   Вверх
Mazzi
Дата 11.11.2008, 09:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Правильный
**


Профиль
Группа: Комодератор
Сообщений: 825
Регистрация: 3.4.2003

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



Я когдато наталкивался на такое и даже решил проблему. Там проблема была с палитрой. Помню, что цвета для нормального отображения приходилось уменьшать. Рой в этом направлении.
К сожалению прошло уже много времени и исходники не сохранились. Хотя.. Нужно дома поискать в архивах.


--------------------
Мне нужны помощники.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

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


 




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


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

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