Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Где ошибка в чтении bmp?

3.0K
23 августа 2006 года
ctraus
91 / / 16.06.2006
Не всякое разрешение отображает.DOS 16 цветов.Чтение Bmp файла.Где ошибка?

int bmp(int x0, int y0, char *fname)
{
FILE *f;
int x,y,nb,np,i,j;
unsigned char b, bh, bl;
unsigned char color[16]={0,4,2,6,1,5,3,7,8,12,10,14,9,13,11,15};
struct bmpinfo
{
char h1,h2;
unsigned long size, reserved, offset, b, width, height;
unsigned int plans, bpp;
};
bmpinfo info;
if((f=fopen(fname, "rb"))==NULL)return -1;
fread(&info, sizeof(info), 1, f);
//if(info.bpp != 24)return -2;
x = x0;
y = y0 + info.height;
nb = (info.width / 8)*4;
if((info.width / 8)!=0)
nb+=4;
fseek(f, info.offset, SEEK_SET);
for(i=0;i<info.height;i++)
{
np = 0;
for(j = 0; j<int(info.width/2) ;j++)
{
b = fgetc(f);
if(np<info.width)
{
bh=b>>4;
putpixel(x,y,color[bh]);
x++;
np++;
}
if(np<info.width)
{
bl=b&15;
putpixel(x,y,color[bl]);
x++;
np++;
}
}
x=x0;
y--;
}
return 1;
}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог